6

没想到会有人收藏,而且这些不是我自己悟出来的,是网络上找到的一篇文章我读懂后转过来的,原文是http://www.jb51.net/article/21339.htm

例1:用于赋值
&&:从左往右依次判断,当当前值为true则继续,为false则返回此值(是返回未转换为布尔值时的原值哦)
|| : 从左往右依次判断,当当前值为false则继续,为true则返回此值(是返回未转换为布尔值时的原值哦)

// => aaa
var attr = true && 4 && "aaa";

// => 0
var attr = true && 0 && "aaa";

// => 100
var attr = 100 || 12;

// => e
var attr = "e" || "hahaha"

// => hahaha
var attr = "" || "hahaha"

例2 经过多次判断的赋值

/*
x>=15时 => 4
x>=12时 => 3
x>=10时 => 2
x>=5时 => 1
x<5时 => 0
*/
console.log((x>=15 && 4) || (x>=12 && 3) || (x>=10 && 2) || (x>=5 && 1) || 0);

例3 与对象形式的变量合体

/*
x=15 时 => 4
x=12 时 => 3
x=10 时 => 2
x=5 时 => 1
其它 => 0
*/
console.log( {'5':1,'10':2,'12':3,'15':4}[x] || 0 );

例4 用于执行语句

if(a >=5){alert("你好");}
//可以写成: 
a >= 5 && alert("你好");

黒之染
3.1k 声望48 粉丝

两年半个人练习生,喜欢ctrl+c/ctrl+v/delete