语法
UnaryExpression 一元运算符,通常是一个属性名或数组元素
返回结果:
如果 UnaryExpression 的结果是一个对象,且在 UnaryExpression
删除对象属性
- var
obj = {}; - obj.name
= 'testname'; - alert(obj.name);//testname
- delete
obj.name; - alert(obj.name);//undefined
删除数组元素
- var
arr=[12,23,5,3,25,98,76,54,56,76]; - alert(arr.length);//10
- delete
arr[0]; - alert(arr[0]);//undefined
- alert(arr.length);//10
为了方便,数组的元素删除还是绕道:arr.splice(0,1);吧,此处只演示delete
使用delete需要注意的知识点
不能删除 var 申明的变量
- eval_r("var
param='nodelete'");//使用eval声明 var变量 - alert(window.param);//
"nodelete" - delete
param; //false - alert(window.param);
// undefined 说明已删除
不能删除函数
处理方法:同上使用eval即可
不能删除继承自原型的成员
- function
Obj(){}; - Obj.prototype.name="obj";
- var
o=new Obj(); - o.name="obj_1"
- alert(o.name);//"obj_1"
- delete
o.name;//ture - alert(o.name);//"obj"
ie下不能删除宿主对象下的变量
处理方法: