このページでは:
<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
var foo = 2;
delete foo;
</script>
</head>
<body></body>
</html>
Firebug コンソールは次のようになります。
applying the 'delete' operator to an unqualified name is deprecated
>>> foo
ReferenceError: foo is not defined
foo
しかし、これは成功しています:
>>> var bar = 2;
undefined
>>> delete bar;
true
delete foo;
スクリプトが壊れないようにコメントアウトしても、「変数宣言を介して作成され、 DontDelete 属性bar
を持っているため、Global オブジェクトのプロパティである」という事実にもかかわらず、削除は成功します。
>>> foo
2
>>> delete foo
false
>>> var bar = 2;
undefined
>>> delete bar
true
FireBug や Chrome のコンソールで「厳格モード」を有効にすることはできますか?