我刚刚看到以下代码:
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=[]
我猜第二个答案是对的吗?我觉得这有点令人困惑......
答案 0 :(得分:10)
相当于
var res = [];
var matches;
其中matches
为undefined
答案 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
如果在函数中使用多个变量,您可能会发现在函数开头声明它们很有用。重要的是声明要在函数中创建的变量。如果您忘记声明变量并且仍然使用它,它将隐式声明为全局变量,这可能会干扰其他地方的代码。