suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Welche Art von Daten sind die Variablen-Tags in der JS-Schleife?

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 ...
}
漂亮男人漂亮男人2750 Tage vor454

Antworte allen(1)Ich werde antworten

  • 为情所困

    为情所困2017-05-19 10:43:43

    因为 delete只能对实例属性有作用,不能直接delete变量或者函数。
    你执行以下命令,返回的将是false,表示删除无效。

    // 删除变量的场景
    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

    附: delete操作符语法, 来自 MDN文档

    delete expression 

    其中的expression是一个对象属性的引用

    delete object.property
    delete object['property']

    Antwort
    0
  • StornierenAntwort