我正在审核我下载的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;
}
但我似乎找不到任何使用像这样的例子的资源。
谢谢你的帮助!
答案 0 :(得分:4)
您的理解是正确的。 var语句中的逗号分隔列表被视为单独的Ines。
对于布尔OR语句:如果第一个表达式是假的,则使用第二个表达式。您可以添加更多内容,如第三个示例所示。