取反运算符(!)
如果对一个值连续做两次取反运算,等于将其转为对应的布尔值,与Boolean函数的作用相同。这是一种常用的类型转换的写法。
!!x 等同于 Boolean(x)
且运算符(&&)
且运算符(&&)往往用于多个表达式的求值。
它的运算规则是:如果第一个运算子的布尔值为true,则返回第二个运算子的值(注意是值,不是布尔值);如果第一个运算子的布尔值为false,则直接返回第一个运算子的值,且不再对第二个运算子求值。
上面代码的最后一个例子,由于且运算符的第一个运算子的布尔值为false,则直接返回它的值0,而不再对第二个运算子求值,所以变量x的值没变。
运算符可以多个连用,这时返回第一个布尔值为false的表达式的值。
上面代码中,第一个布尔值为false的表达式为第三个表达式,所以得到一个空字符串。
或运算符(||)
或运算符(||)也用于多个表达式的求值。它的运算规则是:如果第一个运算子的布尔值为true,则返回第一个运算子的值,且不再对第二个运算子求值;如果第一个运算子的布尔值为false,则返回第二个运算子的值。
上面代码中,且运算符的第一个运算子为true,所以直接返回true,不再运行第二个运算子。所以,x的值没有改变。
或运算符可以多个连用,这时返回第一个布尔值为true的表达式的值。
上面代码中第一个布尔值为true的表达式是第四个表达式,所以得到数值4。
或运算符常用于为一个变量设置默认值。
上面代码表示,如果函数调用时,没有提供参数,则该参数默认设置为空字符串。