删除操作符从对象中删除属性。
返回值:
如果属性是不可配置的,则以严格模式投掷 property(非严格返回false)。在所有其他中返回true 例。
有一些我不明白的事情:
当我在chrome控制台中运行此代码时,它返回true:
var a={'b':'b'};
delete a.b; //it return true
我认为Chrome控制台以非严格模式运行代码。如果是这种情况,那么根据MDN,它应该返回false
。为什么返回true
?
delete
运算符在所有其他情况下返回true。其他案件是什么?我知道一种情况(具有可配置属性的严格模式)。还有其他案例吗?答案 0 :(得分:3)
答案 1 :(得分:1)
要详细了解删除操作符,您可能应该通过kangax查看这个神奇的博客:http://perfectionkills.com/understanding-delete/
其中详细描述了[dontdelete]属性,该属性在尝试删除变量或属性时作为必要属性。