js----delete关键字
delete关键字的作用:
1.删除对象的属性 语法:delete 对象.属性
2.可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性)
3.删除数组元素
4.不能删除内置对象的属性
5.不能直接删除从原型上继承的属性
delete关键字的使用注意: 1.返回值类型为布尔值(true / false),删除成功返回true
2.删除对象中不存在的属性,返回值是true
3.删除对象的原型对象中的属性(不能删除),返回值是true
4.无法删除使用var声明的全局的变量,但是却可以删除直接定义在window上面的属性
代码解释
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> </body> </html> <script> var obj = { name: "张三" } console.log(obj.name); //张三 obj.name = "李四"; console.log(obj.name);//李四 //可以直接删除对象的属性 delete obj.name; console.log(obj.name);//undefined -------------------------------------------------------------- function Person() { this.age = 18; } Person.prototype.name = "张三"; var p1 = new Person(); console.log(p1.name); //张三 p1.name = "李四"; console.log(p1.name); //李四 //不能直接删除原型属性 delete p1.name; console.log(p1.name); //张三
//删除原型属性
delete Person.prototype.name;
console.log(p1.name);//undefined
console.log(p1.age); //18 p1.age = 22; //可以直接删除实例属性 delete p1.age; //可以删除 console.log(p1.age); //undefined //删除不存在的属性,返回true ----------------------------------------------- a = 20; //可以删除未用var 声明的变量(全局变量) delete a; // console.log(a);//a is undefined var b = 15; //不能删除 var 生命的变量 delete b; console.log(b);//15 </script>