学会 || 和 && 运算操作符的返回值可以让我们更加理解if、while等条件判断语句是怎么把 || 和&& 操作符两边的操作数变为布尔类型的值的,同时也是一个非常重要的面试题。例如:
if("ddd" || 0){
//"ddd" || 0 是如何一步一步转化为布尔类型的
//下文有解释
// ...
}
运算规则:
1、对第一个操作数执行条件判断,如果其不是布尔值就先强制转换为布尔类型,然后再执行条件判断;
2、对于 || 来说,如果第一个操作数执行条件判断结果为 true 就返回第一个操作数的值,如果为 false 就返回第二个操作数的值;
3、&& 则相反,如果第一个操作数执行条件判断结果为 true 就返回第二个操作数的值,如果为 false 就返回第一个操作数的值。
console.log("aaa" || true) //'aaa'
console.log("bbb" && 123) //123
console.log(undefined || "ccc") //"ccc"
console.log(0 && "hhhh") // 0
|| 和 && 返回它们其中一个操作数的值,而非条件判断的结果
在 || 和 && 用于条件表达式时,两者返回的值则会进一步转换为布尔值
if("ddd" || 0){
// "ddd" || 0 首先返回 "ddd"
//"ddd" 转换为布尔值为 true
// ...
}
以上就是全部内容,学废了吗?Δ(・ω・Δ)