JavaScript删除和清空对象属性

快乐打工仔 分类:实例代码

JavaScript删除和清空对象属性属于前端实例代码,有关更多实例代码大家可以查看

本文介绍一下如何利用JavaScript删除对象中的属性。

这是非常基础简单的操作,可能刚接触JavaScript的朋友会产生一些误操作。

首先看一段代码实例:

let antzone = {
  webName: "犀牛前端部落",
  url:"www.pipipi.net",
  address:"青岛市南区",
  age:4
}
antzone.webName="";
antzone.age=undefined;

可能以为将对象属性值设置为空或者undefined等表示空的值就是删除属性。

然而事实仅仅是将属性值设置为空或者undefined,属性依然存在。

代码实例如下:

let antzone = {
  webName: "犀牛前端部落",
  url:"www.pipipi.net",
  address:"青岛市南区",
  age:4
}
antzone.webName="";
antzone.age=undefined;
console.log(Object.keys(antzone));

代码运行效果截图如下:

前端教程

可以看到对象的属性并没有被删除。

Object.keys()方法可以获取对象的可枚举自有属性名称。

具体用法可以参阅Object.keys()方法一章节。

一.删除对象指定属性:

非常简单的操作,使用delet运算符即可实现。

代码实例如下:

let antzone = {
  webName: "犀牛前端部落",
  url:"www.pipipi.net",
  address:"青岛市南区",
  age:4
}
delete antzone.age;
console.log(Object.keys(antzone));

代码运行效果截图如下:

前端教程

上面的代码通过delete运算符可以删除age属性。

并不是将age属性值赋值为空或者undefined等,而是切切实实把它从对象中删除。

二.清空对象属性:

操作也非常简单,通过循环遍历挨个删除即可。

代码实例如下:

let antzone = {
  webName: "犀牛前端部落",
  url:"www.pipipi.net",
  address:"青岛市南区",
  age:4
}
for(let key in antzone){
  delete antzone[key];
}
console.log(Object.keys(antzone));

代码运行效果截图如下:

前端教程

由运行效果截图可以看到,对象中已经被清空。

三.并不是所有属性都是可以删除的:

(1).原型链继承的属性不能删除。

(2).被冻结或者密封对象的属性是不可以被删除的。

原型链这个非常好理解,因为继承的属性本质上不是当前对象自有,而是所有对象实例共享。

这个属性本质不是位于当前对象,而是在原型链某个对象之上,这怎么能删除。

关于被冻结和密封对象的属性不能被删除,可以参阅如下两篇文章:

(1).Object.seal()方法一章节。

(2).Object.freeze()方法一章节。

JavaScript删除和清空对象属性,这样的场景在实际项目中还是用的比较多的,关于JavaScript删除和清空对象属性就介绍到这了。

回复

我来回复
  • 暂无回复内容