注意一个使用三元表达式和二元表达式的陷阱
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,那么结果就是右值