短路原理
即通过最短路径达到目的(不需要把所有条件都执行和判断)。
javascript中的 &&(逻辑与) 和 || (逻辑或)都遵循短路原理。
1、|| 运算符
先看几个例子:
var x = 0||1; //1
0意味着false,而后面1意味着true,那么上面的结果应该是true,而事实返回的结果是1
var x = ''||1; //1
前面”是false,后面1是true,返回结果是1
var x = ''||0; //0
前面”是false,后面0同样是false,返回结果是0
var x = 0||''; //''
前面0是false,后面”是false,返回结果是”
var x = 2||1; //2
前面2是true,后面1也是true,返回结果是2
var x = 2||0; //2
前面2是true,后面0是false,返回结果是2
总结:
1.只要||前面是false,则不管后面,都返回"||“后面的值。
2.只要||前面是true,则不管后面,都返回”||"前面的值。
我们称这种为短路原理: 知道了前面第一个的结果就知道最后的输出,如果为第一个为:true,则取第一个的值,如果第一个为false,则取第二个的值。
表达式中有条件为true的表达式,返回第一个条件为true的表达式的值。没有则返回最后一个表达式的值
逻辑与(&&)
1. var a = 0 && 3 // a == 0
2. var b = 2 && 0 // b == 0
3. var c = 3 && false // c == false
4. var d = 2 && 3 // d == 3
5. var e = 2 && 3 && 4 // e == 4
6. var f = 2 && false && 0 // f == false
表达式中有条件为false的表达式,返回第一个条件为false的表达式的值。没有则返回最后一个表达式的值
短路原理:
1、只要“&&”前面是false,则不管后面,结果都将返“&&”前面的值;
2、只要“&&”前面是true,则不管后面,结果都将返“&&”后面的值;