Javascript 条件顺序评估

标签 javascript

当表达式中的一个条件为假时,我可以指望 Javascript 立即失败吗?

f = {'a':'b'};
if (f.a !== undefined || f.a === 'b') {
  // Is this OK to use, because the second condition will never be evaluated?
}

最佳答案

是的,这被称为 short circuit evaluation .

使用 AND 逻辑运算符,如果第一个计算结果为 false,则永远不会计算第二个,因为条件已经足够知道可以满足。

使用OR 逻辑运算符,如果第一个为false,它将计算第二个。否则,如果第一个为 true,则不会评估第二个(不需要)。

这也是为什么你看到...

var a = function(b) {
   b = b || 7;
}

关于Javascript 条件顺序评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5891754/

相关文章:

javascript - 使用带有 .key 名称的键名访问 JSON 对象时出现问题但适用于 []

javascript - Controller 属性更改不会影响某些指令的整个绑定(bind)属性

javascript - 是否可以像单击按钮一样多次显示隐藏的 div?

javascript - Angular 中数组中的数组

javascript - 使用 AJAX 发送文件数组

php - 在 PHP 中选择框数组

javascript - Mobx 属性作为函数而不是值返回

javascript - 函数中的非分隔参数

javascript - 在react hook useState的set参数中运行函数有什么缺点吗?

javascript - 我如何在特定时间段后将 css 规则添加到 div,设置延迟,然后再添加一个 css 规则,使用 jquery?