为什么在Javascript5严格模式下不允许删除?

sircodesalot:

我对javascript很陌生。我注意到,显然在“使用严格”模式下操作时,无法删除对象。我并不是删除内容的忠实拥护者(从理论上讲,因为无论如何,范围都应该解决),但是我想知道删除此功能的动机是什么?

尖的:

delete在严格模式下仍允许使用语句,但是语句的某些特定用法是错误的。仅允许用于对象属性,不能用于简单名称,并且仅用于可以删除的对象属性。

从而

var a = {x: 0};
delete a.x;

很好,但是

delete Object.prototype;

不是,也不是

delete a;

(后者实际上是语法级别的错误,而尝试删除不可删除的属性则是运行时错误。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在严格模式下不允许使用八进制数字文字(解决方法是什么?)

严格模式下不允许属性的多个定义-Angular

ReactJS中的“严格模式下不允许使用传统八进制文字”是什么意思?

如何使用createWriteStream避免“在严格模式下不允许使用八进制文字”

严格模式下不允许使用八进制文字

在Edge浏览器中,严格模式下不允许分配只读属性

Angular 2+:IE11中严格模式下不允许对属性进行多个定义

如何避免使用jqGrid filterloader出现“ SyntaxError:严格模式下不允许使用八进制文字”消息

在严格模式下不允许在对象常量中使用重复的数据属性grunt-connect-proxy

为什么 JavaFX WebView 不允许视频全屏模式

Haskell:为什么模式匹配中不允许++?

为什么Linux不允许删除只读目录?

为什么在这种情况下不允许使用setOnClickListener?

电子不能添加redux开发工具,未捕获的异常:SyntaxError:在严格模式下不允许八进制文字

“ *不允许模式”

为什么不允许ReadWriteLock升级?

为什么不允许覆盖

为什么不允许nameof(object)?

为什么 MySQL 安全更新模式不允许 LIKE 谓词?

为什么Haskell在理解中不允许模式匹配?

为什么Haskell的作用域类型变量不允许在模式绑定中绑定类型变量?

为什么 JavaScript 的扩展语法允许 {...null} 而不允许 [...null]?

为什么删除的复制构造函数不允许使用多态类型的其他构造函数?

在Cassandra中,为什么不允许从使用紧凑存储定义的表中删除列?

为什么UI不允许您删除开发人员?

为什么我得到状态代码:405;尝试执行删除操作后方法不允许?

Java / Hibernate-在只读模式下不允许写操作

FtpWebRequest错误:550大小在ASCII模式下不允许

为什么HTML5输入类型的电子邮件不允许使用空格?