容易被程序猿忽视的问题之:JavaScript中声明变量时,加var和不加var的区别

    在JavaScript中声明变量时,加var和不加var看似都可以,代码也能成功运行,但是两者是有区别的。

    var id = 1;

    指在当前作用域下声明一个变量。如果在全局域下声明的,称为全局变量;如果在方法中声明的,称为局部变量。

    id = 1;

    实为一个赋值操作,首先会在当前作用域以及全局域中寻找id,如果找到id,就对其进行赋值;如果未找到,则会为全局对象(windows对象)创建一个id属性,并对其进行赋值。

    这两者是有很大区别的:

        var id = 1;  为变量声明,是无法被删除的。如果在JS中出现语句:  delete id;   是不奏效的。

         id = 1;  为创建的全局对象属性,是可以从全局对象中删除的。如果在JS中出现语句:  delete id;   是奏效的。

猜你喜欢

转载自blog.csdn.net/m0_37461416/article/details/81050768