在Javascript变量声明中使用逗号

时间:2015-01-25 09:45:13

标签: 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)
}

有人可以解释第二行吗?

var res = [], matches 

相等

var res=[]; res=matches

var res=[]; var matches=[]

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

2 个答案:

答案 0 :(得分:10)

相当于

var res = []; 
var matches; 

其中matchesundefined

答案 1 :(得分:3)

它相当于:

var res=[];
var matches;

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

var a, b, c, d, e;

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

var a, b = 42, c, d = {}, e = "Hello world";

通常在代码顶部的函数中声明所有变量,以更好地表示代码中实际发生的事情(并更好地概述所使用的变量)。函数中的任何变量声明都是hoisted到代码的顶部,因此它们都在代码星执行之前存在。这意味着您可以在声明语句之前使用变量。例如:

a = 42;
var a;
alert(a); // shows 42

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