这是一种分配默认值的流行模式:
var aBool = '' || false;
var aString = false || '';
上面会给aBool
布尔值false
,而aString是空字符串的值,至少在Chrome和FF的控制台中。这与:
如果可以转换为true,则返回expr1;否则,返回 表达式2。因此,当与布尔值一起使用时,||如果有,则返回true 操作数可以转换为true;如果两者都可以转换为false, 返回false。 来源:mozilla
这实际上很方便,但它是否正确?
答案 0 :(得分:0)
在同一个网页上,它说:
可转换为false的表达式示例如下:
- 空;
- 为NaN;
- 0;
- 空字符串(“”);
- 未定义。
在第一个示例中,您有一个空字符串,因此在转换为布尔值时会转换为false
。由于expr1
无法转换为true
,因此表达式返回expr2
,即false
。
在第二个示例中,expr1
为false
,因此返回expr2
,即''
。转换为Boolean
仅用于确定应返回哪个表达式,它不会返回转换后的值。