逻辑运算符: &&, ||,!
运算顺序: !==> && ==>||
这个就简单了看一看就懂了.
a&&b, a||b
逻辑与&&,只要 a能被转换为false,那么结果就是a;否则返回b
逻辑与||, 只要a能被转换为true,那么结果就是a;否则返回b
1. &&
console.log("123" && true); //result: true console.log("" && true); //result: (空的什么也没有) console.log("NaN" && false); //result: false console.log("NaN" && true); //result: true console.log(0 && "1"); //result: 0 console.log(undefined && "a"); //result: undefined console.log(null && true); //result: null console.log(Infinity && 3); //result: 3
2.短路语法||。
console.log("123" || true); //result: 123 console.log("" || true); //result: true console.log("" || 8); //result: 8 console.log("NaN" || false); //result: NaN console.log("NaN" || true); //result: NaN console.log(0 || "1"); //result: 1 console.log(undefined|| "a"); //result: a console.log(null || true); //result: true console.log(Infinity || 3); //result: infinity
小测试:
1) false || !false && false || true
= false || true && false || true)
= false || true || true
= true
console.log(false || !false && false || true); //result: true
2) 1 && “hello" || !false || !true && null
= 1 && “hello" || true || false && null
= “hello" || true || false
= “hello" || false
= "hello"