三元表达式与 二元表达式 的使用区别

注意一个使用三元表达式和二元表达式的陷阱

let a = 1===1 ? 2 :undefined           // 2

let b = 1===1 && 2                        // 2

这两个结果都是2

let a = 1===2 ? 2:undefined         // undefined

let b = 1===2 && 2                    // false

 

第一个结果是undefined,第二个结果是false

造成这种现象的原因在于 执行 && 运算符时, 如果左值为false, false && 任意值都为false,

在let b = 1===2 && 2中 左值为false,所以此时最终值为false,  如果左值为true,那么结果就是右值

猜你喜欢

转载自www.cnblogs.com/eret9616/p/12343441.html