在JavaScript中声明变量时,加var和不加var看似都可以,代码也能成功运行,但是两者是有区别的。
var id = 1;
指在当前作用域下声明一个变量。如果在全局域下声明的,称为全局变量;如果在方法中声明的,称为局部变量。
id = 1;
实为一个赋值操作,首先会在当前作用域以及全局域中寻找id,如果找到id,就对其进行赋值;如果未找到,则会为全局对象(windows对象)创建一个id属性,并对其进行赋值。
这两者是有很大区别的:
var id = 1; 为变量声明,是无法被删除的。如果在JS中出现语句: delete id; 是不奏效的。
id = 1; 为创建的全局对象属性,是可以从全局对象中删除的。如果在JS中出现语句: delete id; 是奏效的。