var x=3>=6;
var y=6;
var z=x||y;
document.write(z);
与和或并不总是返回布尔值,与和或操作,返回的是最后确定结果的值。,由于3>=6为false,不能确定或的值,到6的时候确定值,所以返回6
可以看看我的博客,关于
与和或:
与和或并不总是返回布尔值,&&和||操作主要遵循几大原则:
1.短路操作原则:如果第一个操作数能决定操作结果,就不会再对第二个操作数求值,直接返回第一个操作值。
2.求值过程中会被转型生成副本,但是返回值是原来值;
javascript中的逻辑操作中的&&与||操作并不是总是返回True和False,它返回的值是最后确定结果的值,例:
Null&&true // null就确定结果了返回 null true&&undefined // undefined确定结果返回undefined Object&&{}&&[]&&2 //返回2 Object&&{}&&2&&[] //空数组 Null||9 // 值为9 null||9||undefined // =9 null||undefined // undefined
概括的说:
&&操作:值为真时,返回最后一个值,到最一个才能确定结果;
值为假时,返回第一个假值,一旦有假值结果确定为假.
||操作 :值为真时,返回第一个真值,一旦有真结果为真;
值为假时,返回最一个值,到最一个才能确定结果.
所以说,与和或操作,返回的是最后确定结果的值。
x = false, 取 y
JS就是怎么NB(恶心),false和NULL等是一样的,返回的当然是变量Y
觉得这问题和1+1为什么等于2一样…