逻辑运算,又称 boolean 运算,即要把某个常量或者变量转换为boolean值,ECMAScript-262 v5 规范中描述的 ToBoolean 操作。
未定义的变量(不包括对象中未定义的属性)参与运算将报错。
undefined | false |
null | false |
数字 | NaN 和 0 转换为 false,其他为 true |
字符串 | 空字符串转换为 false,其他为 true |
对象 | true |
(1)not运算符(非运算[!])
按照上面表中规则先转换为boolean值,再取反。想要得到一个非boolean类型的值对应的boolen值,可以二次取反。例如:!!c
逻辑 and运算 与 or 运算 都存在短路效应,即 如果第一个运算数能决定结果,就不再计算第二个运算数。
(2)and运算(与运算[&&])
对于两个boolean值参数,true && true结果为true,其他全为false
逻辑and运算不一定返回boolean值。
如果第一个值对应的boolean值为false,则返回第一个值,否则返回第二个值。
(3)or运算符(或运算[||])
对于两个boolean值参数,false || false结果为false,其他全为true
如果第一个值对应的boolean值为true,则返回第一个值,否则返回第二个值。