Maison > Questions et réponses > le corps du texte
Comme indiqué ci-dessous, dans une boucle, une fois la variable de boucle supprimée, la boucle peut toujours se poursuivre. Est-ce parce que cette variable est spécialement définie comme non modifiable, ou le compilateur crée-t-il une variable interne du même nom dans le contexte ? pour une utilisation en boucle ?
for (var j = 0; j < 10; j++) {
delete j;
console.log(j); // 正常输出 0 1 2 3 ...
}
为情所困2017-05-19 10:43:43
Parce que la suppression ne peut affecter que les attributs d'instance et ne peut pas supprimer directement des variables ou des fonctions.
Si vous exécutez la commande suivante, la valeur de retour sera fausse, indiquant que la suppression n'est pas valide.
// 删除变量的场景
var j = 1;
delete j; // 返回false
console.log(j); // 依然是1
// 删除函数的场景
function x() {
console.log('hello');
}
delete x; // 返回false
x(); // 输出'hello', 函数依然有效
// 删除对象属性的场景
var a = {prop: 1};
delete a.prop; // 返回true,表示删除成功
console.log(a.prop); // undefined
Ci-joint : supprimer la syntaxe de l'opérateur, de la documentation MDN
delete expression
L'expression est une référence à une propriété d'objet
delete object.property
delete object['property']