在Javascript中 - 多个逗号在var语句中做了什么

时间:2014-01-05 07:20:59

标签: javascript jquery wordpress

我一直在寻找新的wordpress主题二十四,并在他们的javascript文件中注意以下行:

var nav = $( '#primary-navigation' ), button, menu;

有人可以解释一下它是什么意思,它看起来不像是一行中的多变量赋值。此外,buttonmenu尚未定义,那么为什么它不会产生错误?

3 个答案:

答案 0 :(得分:4)

您只是声明三个变量并仅将值分配给nav。默认情况下,buttonmenu都会undefined

var a = 1, b, c;
console.log(a, b, c);

<强>输出

1 undefined undefined

相反,如果你看到类似这样的东西

var d = (1, 2, 3);
console.log(d);

<强>输出

3

括号内的表达式将从左到右进行评估,最后一次评估的结果将分配给d

答案 1 :(得分:3)

这相当于以下内容:

var nav = $( '#primary-navigation' );
var button;
var menu;

buttonmenu未定义,通常在您的示例中引用为稍后在整个脚本中使用的变量。

答案 2 :(得分:2)

相同
var nav = $( '#primary-navigation' );
var button;
var menu;

其原因在于避免变量吊装。 有关可变吊装的更多信息: http://thecomputersarewinning.com/post/a-dangerous-example-of-javascript-hoisting/