有人告诉我,javascript 变量应该全部出现在函数中使用之前,例如:
function contrived() {
var myA, myB;
myA = 10;
myB = 20;
return myA + myB;
}
优先于:
function furtherContrivance() {
var myA = 10;
var myB = 20;
return myA + myB;
}
是这样吗?为什么是这样?
我想有些人可能更喜欢前一种风格,因为这就是它的内部运作方式。所有局部变量在函数的整个生命周期中都存在,即使您使用var
在函数中间声明它们。
稍后在函数中声明变量并没有什么问题,就语法而言,它可能只是令人困惑,因为变量将存在于声明它们的行之前。因此这个函数:
function bar() {
alert(foo); // Alerts "undefined". Not an error because the variable does exist.
var foo = 10;
alert(foo); // Alerts the value 10.
}
相当于这样:
function bar() {
var foo;
alert(foo);
foo = 10;
alert(foo);
}
另一个相关的事实是嵌套函数定义(使用完成function foo() { ... }
) 也会被移动到包含函数的顶部,因此即使调用它们的代码位于它们之前,它们也将可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)