简介

用来删除一个对象的属性。

语法


delete expresson

express 应该是一个对象的引用,例如


delete object.property
delete object['property']

如果expression不是一个对象的引用,那么delete则不会起任何作用

返回值

在严格模式下,如果属性是一个不可配置的属性,删除是会抛出异常,非严格模式下返回false,其他情况返回true.

作用

  1. 可以删除隐式全局变量,但不可已删除显示全局变量。
    全局变量其实是global对象(window)的属性。

x = 10;
var y = 20;delete x; //true;
delete y; //false
  1. 内置对象的内置属性不能被删除,用户自定义的属性可以被删除。

obj = {h : 10
}var obj1 = {h: 10
}delete Math.PI; // false
delte obj.h; //true
delete obj; //ture ,obj 是全局变量的属性,而不是变量。delete obj1.h;//true
delete obj1; //false 全局显示变量不能被删除function fn(){var z = 10;delete z; //false//z是局部变量,不能被删除,delete只能删除对象的属性。
}delete fn; //false
//fn 相当于是一个匿名变量,所以也不能被删除。
  1. 不能删除一个对象从原型继承而来的属性,但是可以直接从原型上删掉它;

function foo(){}
foo.prototype.name = 'zhangsan';var f = new foo();//delete只能删除自己的属性,不能删除继承来的属性
delete f.name; // false console.log(f.name);//zhangsandelete foo.prototype.anme; // trueconsole.log(f.name); // undefined

删除数组元素

当删除数组元素时,数组的长度并不会变小。


var arr = [1,3,4,6,73,2];
delete arr[2];console.log(arr.length); // 6
console.log(arr[2]); //undefiend
consoel.log(arr); //[ 1, 3, , 6, 73, 2 ]

作用:在forEach 循环中删除元素,不会影响循环结果


var arr = [1,3,5,21,3,4,53,21,5,2];arr.forEach(function(val,index){if(val < 10){delete arr[index];}
})console.log(arr); //[ , , , 21, , , 53, 21, ,  ]//可以使用filter过滤掉空值 [ 21, 53, 21 ]
arr = arr.filter(function(val){return val});

与 Array.splice 对比


arr.forEach(function(val,index){if(val < 10){arr.splice(index,1);}
})//没有答案我们预想的结果,因为splice删除元素会改变数组的长度。
//所以说删除一个值后,其后的那个值占据了它的位置,在判断的时候就会漏掉。
console.log(arr);// [ 3, 21, 4, 53, 21, 2 ]

JS 删除操作 delete相关推荐

  1. MYSQL笔记:删除操作Delete、Truncate、Drop用法比较

    今天小编给大家梳理一下MYSQL删除操作Delete.Truncate.Drop用法有什么区别,到底该如何合理使用,希望对大家能有帮助! 1.执行速度比较 Delete.Truncate.Drop关键 ...

  2. 14. Mybatis 删除操作-delete

    1. delete 标签 delete 标签是用于定义delete 语句的. 1.1 常用属性 delete 有几个常用的属性, 但是通常只需要设置id 即可. id: sql 片段在命名空间内的唯一 ...

  3. 〖Python 数据库开发实战 - MySQL篇㉖〗- 数据删除操作 - DELETE语句

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  4. mysql 插入删除操作_MySQL——增删改操作

    插入语句 一次插入操作只插入一行数据 insert into [tablename](listname1,listname2,......) values (value1,value2,......) ...

  5. JS删除对象中的某一属性(delete)

    JS如何删除对象中的某一属性 var obj={name: 'zhagnsan',age: 19 } delete obj.name //true typeof obj.name //undefine ...

  6. Java文件删除操作File#delete()

    这个算是一个非常通用并且常见的API了,但是其实这个方法在删除文件的时候其实是有一些限制的.如下,我们可以看见这个API返回值代表着删除是否成功: public boolean delete() {S ...

  7. html中js添加或删除activex,JS:操作样式表2 :用JS实现添加和删除一个类名的功能(addClass()和removeClass())...

    var box = document.getElementById("box"); box.id = "pox"; 将id = "box", ...

  8. mysql delete 标记_MySQL删除操作其实是假删除

    在 InnoDB 中,你的 delete 操作,并不会真的把数据删除,mysql 实际上只是给删除的数据打了个标记,标记为删除,因此你使用 delete 删除表中的数据,表文件在磁盘上所占空间不会变小 ...

  9. mongodb的delete_MongoDB删除操作(Delete)

    删除操作从集合中删除文档.MongoDB提供了以下删除集合文档的方法:db.collection.deleteOne() New in version 3.2 db.collection.delete ...

最新文章

  1. bert推理速度太慢如何解决
  2. 后端架构设计,如何扛住100亿次请求?
  3. 为什么传值时加号变成了空格_为什么中英文字间距不一样?我想谈谈我的理解...
  4. boost::fusion::insert用法的测试程序
  5. 详谈为何不要使用Windows的notepad编写shell
  6. 文档视图结构下多视图间的控制
  7. foreach和IEnumerable+yield和IEnumerator
  8. 计算机网络就业范围分析,计算机网络技术专业就业前景怎么样「就业形势分析」...
  9. javascript练习----复选框全选,全不选,反选
  10. 一篇文章带你快速入门JavaScript(实操代码)
  11. 什么鬼?弃用JDK动态代理,Spring5 默认使用 CGLIB 了?
  12. 《图像处理实例》 之 寻找山脊线
  13. php处理post序列化,使用jQuery POST和php序列化和提交表单
  14. 51单片机程序设计——电子音乐盒
  15. js实现的单机双人象棋演示及其分析
  16. 一点浩然气,千里快哉风
  17. matter.js学习笔记(八)--Composites.newtonsCradle()制造牛顿摆
  18. 业务流程驱动的数字化转型,中小微企业开启转型的最简单方法论
  19. 思科模拟器中配置单区域OSPF
  20. hdu1166 排兵布阵

热门文章

  1. Vue点击动态添加Class
  2. Android应用开发技巧之更方便的使用Sqlite
  3. 场景判断方法expected_conditions
  4. 将图片转换成base64 在前端使用img标签显示出来
  5. 新公司法下股权变更登记审查应当注意的问题
  6. with open()写入的内容后,文件中看不到
  7. 车载充电机与直流转换器
  8. 结构光深度仿真测量参数标定
  9. 中国聚乙烯亚胺(PEI)行业研究与投资前景报告(2022版)
  10. 2021年全球乙烯-四氟乙烯共聚物涂料收入大约45百万美元,预计2028年达到49百万美元