我注意到奇怪的问题。
看看这个 jQuery:
$(function(){
status = 1;
status1 = 2;
$('body').append(status+' - '+status1);
});
如您所见,输出为:
- 2
status
JavaScript 或 jQuery 的系统变量也是如此吗?
还有其他像这样的变量吗?
我注意到奇怪的问题。
看看这个 jQuery:
$(function(){
status = 1;
status1 = 2;
$('body').append(status+' - '+status1);
});
如您所见,输出为:
- 2
status
JavaScript 或 jQuery 的系统变量也是如此吗?
还有其他像这样的变量吗?
JavaScript 具有全局变量,在浏览器中,全局变量是全局对象的属性,即window
.
现在,window
它本身有几个预定义的属性,其中一些是只读的,例如window.status
[MDN](这也可能因浏览器而异!)。因此,使用这样的名称创建全局变量将失败(该变量已经存在,但您不能为其分配新值)。
您可以在MDN 文档中找到预定义属性的列表。
这是您应该避免使用全局变量的原因之一。如果您使用局部变量(通过声明变量var
并在必要时将所有代码放在一个函数中),您就不会有这个问题:
(function() {
var status = 'foo';
// ....
}());