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 相关文章推荐
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
Dec 12 Javascript
jQuery scrollFix滚动定位插件
Apr 01 Javascript
jQuery中(function($){})(jQuery)详解
Jul 15 Javascript
浅析Node.js的Stream模块中的Readable对象
Jul 29 Javascript
原生js配合cookie制作保存路径的拖拽
Dec 29 Javascript
js右下角弹出提示框示例代码
Jan 12 Javascript
JavaScript检测原始值、引用值、属性
Jun 20 Javascript
JavaScript提高网站性能优化的建议(二)
Jul 24 Javascript
AngularJS ng-bind 指令简单实现
Jul 30 Javascript
ReactNative中使用Redux架构总结
Dec 15 Javascript
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
详解Vue3.0 前的 TypeScript 最佳入门实践
Jun 18 Javascript
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生成随机数的三种方法
2014/09/10 PHP
thinkphp分页实现效果
2016/10/13 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
简单理解Python中的装饰器
2015/07/31 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
python使用zip将list转为json的方法
2018/12/31 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
小学红领巾中秋节广播稿
2014/01/13 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
小学教师寄语大全
2014/04/03 职场文书
代办委托书怎样写
2014/04/08 职场文书
安全生产标语大全
2014/10/06 职场文书
冰雪公主观后感
2015/06/16 职场文书
走进科学观后感
2015/06/18 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
Python中的 Set 与 dict
2022/03/13 Python
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android