recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Quel type de données est la balise variable dans la boucle JS

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 ...
}
漂亮男人漂亮男人2788 Il y a quelques jours495

répondre à tous(1)je répondrai

  • 为情所困

    为情所困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']

    répondre
    0
  • Annulerrépondre