在线文档教程
JavaScript
错误 | Errors

Errors: Delete in strict mode

Errors: Delete in strict mode

信息

SyntaxError: applying the 'delete' operator to an unqualified name is deprecated (Firefox) SyntaxError: Delete of an unqualified identifier in strict mode. (Chrome)

错误类型

SyntaxError in strict mode only.

什么地方出了错?

JavaScript中的正常变量不能使用delete运算符删除。在严格模式下,试图删除一个变量会引发错误,不允许。

delete运营商只能在对象上删除属性。如果对象属性是可配置的,则属性是“限定的”。

与常见的观点不同,delete运营商与直接释放内存无关。内存管理通过中断引用间接完成,请参阅内存管理页面和delete操作页面了解更多详细信息。

这个错误只发生在严格的模式代码中。在非严格的代码中,操作只是返回false

例子

试图删除一个普通的变量,在JavaScript中不起作用,并在严格模式下引发错误:

'use strict'; var x; // ... delete x; // SyntaxError: applying the 'delete' operator to an unqualified name // is deprecated

要释放变量的内容,可以将其设置为null

'use strict'; var x; // ... x = null; // x can be garbage collected