每日一题让前端飞Web前端之路

第10题- 你不知道的delete操作符

2019-08-21  本文已影响0人  青天诀

面试题目:

下面代码的输出结果是什么?

a = [1, 2, 3, 4];
delete a[1];
console.log(a.length);

答案解析:

这个题目主要考察delete相关的知识点

在 JavaScript 中 delete 操作符用于删除对象的某个属性,与直观的看法不同,delete操作符与直接释放内存无关,内存管理是通过断开引用来间接完成的。

delete成功删除的时候回返回 true,否则返回 false。可删除对象如下描述:

  1. 删除对象的属性
  2. 可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性)
  3. 删除数组元素
  4. 不能删除内置对象的属性
  5. 不能直接删除从原型上继承的属性

示例:

  1. 对象属性删除
function fun(){
    this.name = 'mm'; 
}

var obj = new fun();
console.log(obj.name);//mm
delete obj.name;
console.log(obj.name); //undefined
  1. 变量删除 (无法删除var定义的变量)
var name = 'lily';
delete name;
console.log(name); //lily
  1. 删除不了原型链中的变量
function fun(){
    this.name = 'mm'; 
}
fun.prototype.age = 18;
var obj = new fun();
delete obj.age;
console.log(obj.age) //18

面试题目中,删除数组元素,不会改变数组元素的长度,仅仅是将元素变为empty



扫一扫 关注我的公众号【前端名狮】,更多精彩内容陪伴你!

【前端名狮】
上一篇 下一篇

猜你喜欢

热点阅读