在Javascript变量声明中使用逗号

DDE*_*DEX 4 javascript

我刚刚看到以下代码:

function showMatch(str, reg) {
var res = [], matches
 while(true) {
  matches = reg.exec(str)
  if (matches === null) break
   res.push(matches[0])
  if (!reg.global) break
alert(res)
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释第二行吗?是否

var res = [], matches 
Run Code Online (Sandbox Code Playgroud)

等于

var res=[]; res=matches
Run Code Online (Sandbox Code Playgroud)

要么

var res=[]; var matches=[]
Run Code Online (Sandbox Code Playgroud)

我猜第二个答案是对的吗?我发现这有点令人困惑......

Ale*_* T. 12

它相当于

var res = []; 
var matches; 
Run Code Online (Sandbox Code Playgroud)

这里matchesundefined


Guf*_*ffa 5

等效于:

var res=[];
var matches;
Run Code Online (Sandbox Code Playgroud)

声明变量时,可以将它们放在同一var语句中,并用逗号分隔:

var a, b, c, d, e;
Run Code Online (Sandbox Code Playgroud)

可以使用以下值初始化任何变量:

var a, b = 42, c, d = {}, e = "Hello world";
Run Code Online (Sandbox Code Playgroud)

通常可以在代码顶部声明一个函数中的所有变量,以更好地表示代码中实际发生的事情(并更好地了解所使用的变量)。函数中的所有变量声明都将提升到代码的顶部,因此它们都在代码开始执行之前就存在。这意味着您可以在声明语句之前使用变量。例:

a = 42;
var a;
alert(a); // shows 42
Run Code Online (Sandbox Code Playgroud)

如果在函数中使用多个变量,则可能会发现在函数开头声明它们很有用。重要的部分是声明要在函数中创建的变量。如果忘记声明一个变量并仍然使用它,它将隐式声明为全局变量,这可能会干扰其他地方的代码。