第一层理解:当操作数都是布尔值时,&&运算符对两个值执行布尔与(and)操作,只有第一个操作数和第二个操作数都是true,
它才返回true。例如:x==0&&y==0 //只有在x和y都是0,才返回true
第二层理解:&&可以对真值和假值进行布尔与(and)运算。把&&符号左侧和右侧的表达式或者 数据类型转为布尔值。
例如:if(1&&2) 1&&2转为true
第三层理解:是对第二层理解的加深。alert(1&&2)输出多少,答案不是true,而是2.
原因:&&符号首先计算左操作数的值,如果计算结果是假值,那么整个表达式肯定也是假值,则将左操作数计算结果返回作为整个表达式的值。
如果左操作数时真值,那么整个表达式的结果则依赖于右操作数的值,则将计算右操作数的值并将其返回作为整个表达式的值。
例如 1&&2 结果为2
0&&2 结果为0