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>本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!