猿问

js循环时的变量标记是种怎样的数据

如下所示,在循环中,循环的变量删除后,循环仍能进行,是因为这个变量被特殊定义为了不可编辑,还是说编译器在上下文中创建了一个内部的同名的变量供循环使用?

for (var j = 0; j < 10; j++) {

  delete j;

  console.log(j); // 正常输出 0 1 2 3 ...

}


拉丁的传说
浏览 470回答 1
1回答

一只萌萌小番薯

因为 delete只能对实例属性有作用,不能直接delete变量或者函数。你执行以下命令,返回的将是false,表示删除无效。// 删除变量的场景var j = 1;&nbsp;&nbsp;delete j;&nbsp; // 返回falseconsole.log(j);&nbsp; // 依然是1// 删除函数的场景function x() {&nbsp; &nbsp;&nbsp;&nbsp; console.log('hello');&nbsp;}delete x;&nbsp; &nbsp; &nbsp;// 返回falsex();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // 输出'hello', 函数依然有效// 删除对象属性的场景var a = {prop: 1};&nbsp;&nbsp;delete a.prop;&nbsp; &nbsp;// 返回true,表示删除成功console.log(a.prop);&nbsp; &nbsp;// undefined附: delete操作符语法, 来自&nbsp;MDN文档delete&nbsp;expression其中的expression是一个对象属性的引用delete&nbsp;object.propertydelete&nbsp;object['property']
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答