是Chrome Javascript评估布尔表达式正确
Is Chrome Javascript evaluating boolean expressions correctly?
分配默认值是一种流行的模式:
var aBool = '' || false;
var aString = false || '';
以上将给aBool
boolean的false
的值,和aString的空字符串的值,至少在Chrome的和FF的控制台。这与:
返回expr1,如果它可以转换为true;否则,返回expr2。因此,当与布尔值一起使用时,如果是,则||返回true操作数可转换为true;如果两者都可以转换为假,返回false。来源:mozilla
这实际上很方便,但它是正确的吗?
在同一个网页上,它说:
可以转换为false的表达式的例子有:
零;
- 南;
- 0;
- 空字符串(");
- 定义。
在第一个示例中,您有一个空字符串,因此当转换为布尔值时,它将转换为false
。由于expr1
不能转换为true
,因此表达式返回expr2
,即false
。
在第二个示例中,expr1
是false
,因此它返回expr2
,即''
。到Boolean
的转换仅用于确定应该返回哪个表达式,它不返回转换后的值。
相关文章:
- 使用正则表达式评估电子邮件地址时出现性能问题
- 布尔表达式-与AND、OR逻辑运算符混淆以及它们的工作方式
- 什么's VBA和Javascript布尔表达式之间的区别
- 评估JavaScript中给出布尔表达式的字符串
- 从树遍历中构建布尔表达式的算法
- = vs === 布尔表达式的运算符
- ngAnimateSwap-使用布尔表达式不会按预期设置动画
- 为什么这个布尔表达式不返回 true
- JS与C++表达式评估
- 如何在复杂的布尔表达式上避免三元
- 用pegjs解析布尔表达式链
- 反转布尔表达式
- 在不带eval的Javascript中计算字符串中的布尔表达式
- 为什么这个JavaScript代码在布尔表达式不再为true之后进入for循环
- angular.js中的表达式评估
- 遍历json抽象语法树来构建布尔表达式
- JavaScript布尔表达式中的多个比较运算符
- javascript在布尔表达式中使用优化吗?
- 是Chrome Javascript评估布尔表达式正确
- 用于布尔表达式计算的Javascript eval