使用逗号的JavaScript短路变量赋值

时间:2012-07-26 16:30:33

标签: 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;
}

但我似乎找不到任何使用像这样的例子的资源。


谢谢你的帮助!

1 个答案:

答案 0 :(得分:4)

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

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