delete关键字
虽然JS有自己的垃圾回收机制,因此delete用的时候不是很多,但是了解一下也还是有好处的,比如在面试题可能会遇到。
首先先把
1.删除对象的属性 语法:delete 对象.属性
2.可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性)
3.删除数组元素
4.不能删除内置对象的属性
5.不能直接删除从原型上继承的属性
需要注意的是:1.返回值类型为布尔值(true / false),删除成功返回true
2.删除对象中不存在的属性,返回值是true
3.删除对象的原型对象中的属性(不能删除),返回值是true
4.无法删除使用var声明的全局的变量,但是却可以删除直接定义在window上面的属性
5.使用let和const声明的变量不能从作用域范围被delete
实例
1.可以删除未用var 声明的变量(全局变量)
a = 1;
delete a;
// console.log(a);//a is undefined
2.delete删除不了原型链中的变量
function fn(){
this.name = 'wzw';
}
var obj = new fn