为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

拉丁的传说 2018-11-15 14:15:06
如下所示,在循环中,循环的变量删除后,循环仍能进行,是因为这个变量被特殊定义为了不可编辑,还是说编译器在上下文中创建了一个内部的同名的变量供循环使用?for (var j = 0; j < 10; j++) {  delete j;  console.log(j); // 正常输出 0 1 2 3 ...}
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

因为 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.propertydelete object['property']


查看完整回答
反对 回复 2018-12-07
  • 1 回答
  • 0 关注
  • 429 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信