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

查看:86
本文介绍了javascript - js循环时的变量标记是种怎样的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

for (var j = 0; j < 10; j++) {
  delete j;
  console.log(j); // 正常输出 0 1 2 3 ...
}

解决方案

因为 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']

这篇关于javascript - js循环时的变量标记是种怎样的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆