Wie unten gezeigt, kann die Schleife nach dem Löschen der Schleifenvariablen immer noch fortgesetzt werden. Liegt es daran, dass diese Variable speziell als nicht bearbeitbar definiert ist, oder erstellt der Compiler eine interne Variable mit demselben Namen im Kontext? für die Schleifennutzung?
for (var j = 0; j < 10; j++) {
delete j;
console.log(j); // 正常输出 0 1 2 3 ...
}
因为 delete只能对实例属性有作用,不能直接delete变量或者函数。
你执行以下命令,返回的将是false,表示删除无效。
附: delete操作符语法, 来自 MDN文档
其中的expression是一个对象属性的引用