JavaScript 使用逗号进行短路变量赋值

标签 javascript variable-assignment short-circuiting

我正在检查我下载的 JavaScript 小部件的一些代码,其中有一个类似于以下内容的变量分配:

var a = a.something || a.somethingElse, c, d, e, f, g;

我想知道这是否等同于:

var a = a.something || a.somethingElse;
var c, d, e, f, g;

或者这个:

var a = a.something || a.somethingElse || c || d || e || f || g;

我一直在阅读有关短路评估和作业的内容,我明白第一部分的意思是:

if ( a.something != (null or 0 or false)) {
    a = a.something;
} else {
    a = a.somethingElse;
}

但我似乎找不到任何使用此类示例的资源。


谢谢您的帮助!

最佳答案

你的理解是正确的。 var 语句中的逗号分隔列表被视为单个 Ines。

对于 bool OR 语句:如果第一个表达式为假,则使用第二个表达式。您可以添加更多内容,如第三个示例所示。

关于JavaScript 使用逗号进行短路变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11673854/

相关文章:

java - 为什么 Java 没有条件与和条件或运算符的复合赋值版本? (&&=, ||=)

c# - 如何在 Windows PowerShell 4.0 中执行短路评估?

javascript - 使用 Grunt 编译 SASS 文件会创建一个不必要的文件夹

c++ - C++ 正十进制整数的递归函数数字逆序

php - 在 jQuery onClick 上,递增 PHP 变量?

unicode - 为什么我不能在作业中使用 Unicode 字符 √ 和 ∀?

c++ - 分配失败

c# - 副作用、短路和空传播方法调用运算符 (?.)

javascript - 触发点击,或模态

javascript - 获取请求查询字符串 Node