在Javascript中-多个逗号在var语句中起什么作用

在Javascript中-多个逗号在var语句中起什么作用,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我一直在浏览新的wordpress主题Twenty14,并注意到其javascript文件中的以下行: var nav = $( '#primary-navigation' ), button, menu; 谁能解释一下这是什么意思,它看起来不像是一行中的多变量赋值。另外,按钮和菜单尚未定义,因此它为什么不会产生错误?您只是声明了三个变量,并仅将值分配给导航。默认情况下,按钮和菜单都将有未定义的 var a = 1, b, c; console.log(a, b, c); 输出 1 unde

我一直在浏览新的wordpress主题Twenty14,并注意到其javascript文件中的以下行:

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

谁能解释一下这是什么意思,它看起来不像是一行中的多变量赋值。另外,
按钮
菜单
尚未定义,因此它为什么不会产生错误?

您只是声明了三个变量,并仅将值分配给
导航
。默认情况下,
按钮
菜单
都将有
未定义的

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

1 undefined undefined
3
相反,如果你看到这样的事情

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

1 undefined undefined
3

括号内的表达式将从左到右求值,最后一次求值的结果将分配给
d

,这相当于以下内容:

var nav = $( '#primary-navigation' );
var button;
var menu;
按钮
菜单
未定义,在您的示例中通常作为变量引用,这些变量稍后将在整个脚本中使用。

这与

var nav = $( '#primary-navigation' );
var button;
var menu;
其原因是为了避免可变起重。 有关可变起重的更多信息:
var x,y,z
=
var x;变量y;var z