javascript的delete运算符知识点总结


Posted in Javascript onNovember 19, 2019

delete是一元操作符,它用来删除对象属性或者数组元素。就像 赋值、递增、递减运算符一样,delete也是具有副作用的,它是用来做删除操作的,不是用来返回一个值的,例如:

var o = { x: 1, y: 2};     // 定义一个对象
delete o.x;           // 删除一个属性 
"x" in o            // => false:这个属性在对象中不再存在 
var a = [1,2,3];        // 定义一个数组 
delete a[2];          // 删除最后一个数组元素 
2 in a;             // => false:元素2在数组中已经不存在了 
a.length            // => 3:注意,数组长度并没有改变,尽管上一行代码删除

需要注意的是,删除属性或者删除数组元素不仅仅是设置了一个 undefined的值。当删除一个属性时,这个属性将不再存在。读取一个不 存在的属性将返回undefined,但是可以通过in运算符(见4.9.3节)来检测这个属性是否在对象中存在。

delete希望他的操作数是一个左值,如果它不是左值,那么delete将 不进行任何操作同时返回true。否则,delete将试图删除这个指定的左 值。如果删除成功,delete将返回true。然而并不是所有的属性都可删 除,一些内置核心和客户端属性是不能删除的,用户通过var语句声明 的变量不能删除。同样,通过function语句定义的函数和函数参数也不能删除。

在ECMAScript 5严格模式中,如果delete的操作数是非法的,比如 变量、函数或函数参数,delete操作将抛出一个语法错误 (SyntaxError)异常,只有操作数是一个属性访问表达式(见4.4节)的 时候它才会正常工作。在严格模式下,delete删除不可配置的属性(参 照6.7节)时会抛出一个类型错误异常。在非严格模式下,这些delete操 作都不会报错,只是简单地返回false,以表明操作数不能执行删除操作。

这里有一些关于delete运算符的例子:

var o = {x:1, y:2};   //定义一个变量,初始化为对象 
delete o.x;       //删除一个对象属性,返回true 
typeof o.x;       //属性不存在,返回"undefined" 
delete o.x;       //删除不存在的属性,返回true 
delete o;        //不能删除通过var声明的变量,返回false
//在严格模式下,将抛出一个异常 delete 1;        //参数不是一个左值,返回true 
this.x = 1;       //给全局对象定义一个属性,这里没有使用
var delete x;        //试图删除它,在非严格模式下返回true            
//在严格模式下会抛出异常,这时使用"delete this.x"来代替    
x;       //运行时错误,没有定义x

以上就是关于javascript中delete运算符的基础知识点,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
jquery 显示*天*时*分*秒实现时间计时器
May 07 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
Aug 10 Javascript
JQuery操作textarea,input,select,checkbox方法
Sep 02 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
Angular组件化管理实现方法分析
Mar 17 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 Javascript
详解基于mpvue的小程序markdown适配解决方案
May 08 Javascript
微信小程序之自定义组件的实现代码(附源码)
Aug 02 Javascript
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
May 05 Javascript
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
100行代码实现vue表单校验功能(小白自编)
Nov 19 #Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 #Javascript
nodemon实现Typescript项目热更新的示例代码
Nov 19 #Javascript
vue的三种图片引入方式代码实例
Nov 19 #Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
Nov 19 #Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 19 #Javascript
VUEX-action可以修改state吗
Nov 19 #Javascript
You might like
php 图片上传类代码
2009/07/17 PHP
php 输出双引号"与单引号'的方法
2010/05/09 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
使用python画个小猪佩奇的示例代码
2018/06/06 Python
python画图的函数用法以及技巧
2019/06/28 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
Python编写万花尺图案实例
2021/01/03 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
历史学专业推荐信
2013/11/06 职场文书
大学学习生活感言
2014/01/18 职场文书
销售员自我评价
2015/03/11 职场文书
2015入党自传书范文
2015/06/26 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis