我正在检查我下载的 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/