JS 删除操作 delete
简介
用来删除一个对象的属性。
语法
delete expresson
express 应该是一个对象的引用,例如
delete object.property
delete object['property']
如果expression不是一个对象的引用,那么delete则不会起任何作用
返回值
在严格模式下,如果属性是一个不可配置的属性,删除是会抛出异常,非严格模式下返回false,其他情况返回true.
作用
- 可以删除隐式全局变量,但不可已删除显示全局变量。
全局变量其实是global对象(window)的属性。
x = 10;
var y = 20;delete x; //true;
delete y; //false
- 内置对象的内置属性不能被删除,用户自定义的属性可以被删除。
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 相当于是一个匿名变量,所以也不能被删除。
- 不能删除一个对象从原型继承而来的属性,但是可以直接从原型上删掉它;
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相关推荐
- MYSQL笔记:删除操作Delete、Truncate、Drop用法比较
今天小编给大家梳理一下MYSQL删除操作Delete.Truncate.Drop用法有什么区别,到底该如何合理使用,希望对大家能有帮助! 1.执行速度比较 Delete.Truncate.Drop关键 ...
- 14. Mybatis 删除操作-delete
1. delete 标签 delete 标签是用于定义delete 语句的. 1.1 常用属性 delete 有几个常用的属性, 但是通常只需要设置id 即可. id: sql 片段在命名空间内的唯一 ...
- 〖Python 数据库开发实战 - MySQL篇㉖〗- 数据删除操作 - DELETE语句
订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...
- mysql 插入删除操作_MySQL——增删改操作
插入语句 一次插入操作只插入一行数据 insert into [tablename](listname1,listname2,......) values (value1,value2,......) ...
- JS删除对象中的某一属性(delete)
JS如何删除对象中的某一属性 var obj={name: 'zhagnsan',age: 19 } delete obj.name //true typeof obj.name //undefine ...
- Java文件删除操作File#delete()
这个算是一个非常通用并且常见的API了,但是其实这个方法在删除文件的时候其实是有一些限制的.如下,我们可以看见这个API返回值代表着删除是否成功: public boolean delete() {S ...
- html中js添加或删除activex,JS:操作样式表2 :用JS实现添加和删除一个类名的功能(addClass()和removeClass())...
var box = document.getElementById("box"); box.id = "pox"; 将id = "box", ...
- mysql delete 标记_MySQL删除操作其实是假删除
在 InnoDB 中,你的 delete 操作,并不会真的把数据删除,mysql 实际上只是给删除的数据打了个标记,标记为删除,因此你使用 delete 删除表中的数据,表文件在磁盘上所占空间不会变小 ...
- mongodb的delete_MongoDB删除操作(Delete)
删除操作从集合中删除文档.MongoDB提供了以下删除集合文档的方法:db.collection.deleteOne() New in version 3.2 db.collection.delete ...
最新文章
- bert推理速度太慢如何解决
- 后端架构设计,如何扛住100亿次请求?
- 为什么传值时加号变成了空格_为什么中英文字间距不一样?我想谈谈我的理解...
- boost::fusion::insert用法的测试程序
- 详谈为何不要使用Windows的notepad编写shell
- 文档视图结构下多视图间的控制
- foreach和IEnumerable+yield和IEnumerator
- 计算机网络就业范围分析,计算机网络技术专业就业前景怎么样「就业形势分析」...
- javascript练习----复选框全选,全不选,反选
- 一篇文章带你快速入门JavaScript(实操代码)
- 什么鬼?弃用JDK动态代理,Spring5 默认使用 CGLIB 了?
- 《图像处理实例》 之 寻找山脊线
- php处理post序列化,使用jQuery POST和php序列化和提交表单
- 51单片机程序设计——电子音乐盒
- js实现的单机双人象棋演示及其分析
- 一点浩然气,千里快哉风
- matter.js学习笔记(八)--Composites.newtonsCradle()制造牛顿摆
- 业务流程驱动的数字化转型,中小微企业开启转型的最简单方法论
- 思科模拟器中配置单区域OSPF
- hdu1166 排兵布阵