|| 和 && 是在计算机中数字逻辑这门课中出来的逻辑运算符,前者只要出现true运算结果就是true,后者只要出现false运算结果就是false, 这是大家都知道的。
但是在运算符左右不是明确的boolean类型的时候,会存在短路现象。例如alert( 1 || 0) 的结果不是true,而是1,这是因为当前者为true(1的隐式转换)的时候 “ ||” 运算的结果已经是
确定的了,会出现短路现象而不去看后面的东西,直接把前面的返回出来就好(但是却不能返回隐式类型转换的结果)。同理 ,当&&的第一个是false的时候,直接返回前面的东西出
来就好,不管后面的了。
弄清楚了欢迎试一下下面的结果:
alert(''||1); // 1
alert('a'||0); // a
alert('a'&&0); // 0alert('a'&&1); //a
菜鸟的入门笔记,大神轻喷