JavaScript中删除数组应该使用
arr.length=0;
而不是
delete arr;
var arr =[1,2,3];
console.log(arr);
delete arr;
console.log(arr);
arr.length = 0;
console.log(arr);
原因如下:
delete 运算符
从对象中删除一个属性,或从数组中删除一个元素。
delete expression
expression 参数是一个有效的 JScript 表达式,通常是一个属性名或数组元素。
如果 expression 的结果是一个对象,且在 expression 中指定的属性存在,而该对象又不允许它被删除,则返回 false。
在所有其他情况下,返回 true。
从数组中删除一个元素,只能删除那个元素的值,而不是元素本身。不过从对象中删除一个属性是可以的。
Javascript的变量
实际上Javascript中,变量 = 对象属性,这是因为 Javascript 在执行脚本之前会创建一个Global对象,所有的全局变量都是这个Global对象的属性,执行函数时也会创建一个Activation对象,所有的局部变量都是这个Activation对象的属性。