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