我定义了一个空对象(关联数组)
obj = {}
如果我尝试查询任何参数,它将返回未定义,因为它是空的。
>> console.log(obj.id)
undefined
现在我为 id 赋值
>> obj.id = 123
>> console.log(obj.id)
123
假设我想删除这2个更方便的id属性
obj.id = undefined
任何一个
delete obj.id
当我咨询我使用过的独立属性时,它将返回undefined但如果我console.log()
只做对象我有一些不同的东西:
对于第一种情况:
>> console.log(obj)
{id: undefined}
而不是第二种情况:
>> console.log(obj)
{}
哪个是最好的,还有另一种选择。
在这个编程世界中,并不是一件事比另一件事更好,而是最适合您需求的那个。
使用 delete 太慢了,如果您删除成千上万个属性,可能会影响应用程序的性能,但您真的要删除这么多属性吗?如果你删除其中的一些,你的应用程序可能会减慢大约 200 毫秒,这是没人会注意到的。但是,如果你要将对象存储在非理性数据库中,或者你只需要将对象发送到服务器并且用户连接速度慢,最好花几毫秒删除属性;我曾与卫星网络合作过,按要求发送大件物品是一件令人头疼的事情。
将其设置为 undefined 会更快,但是您会拖很多垃圾,如果它不影响您,则不会有任何问题。
我给你留下一个基准,你可以看到他们在一秒钟内将 296,204,746 个对象放入定义的对象中,只有 10,851,554 个对象被删除(大约)
因此,请使用最适合您的代码,或者使用它可以拥有更清晰、更易读的代码,从而提高维护效率。
要删除一个对象
javascript
,你必须使用这个词delete
执行命令
obj.id = undefined
是初始化变量。如果要发送JSON
没有id
必须使用的值delete
,否则如果要使用初始值填写表单,则必须将值发送到后端,您必须将变量声明为在示例中显示,在这两种方式中它都是未定义的,但是当您咨询该元素是否存在于对象中时,它存在并为您打印它要在 JavaScript 中删除对象的属性,请使用运算符
delete
,因为分配值undefined
不会删除它。优点是它
delete
删除了属性,因此释放了内存,并且通过对象的属性更快。参考