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 相关文章推荐
解读JavaScript中 For, While与递归的用法
May 07 Javascript
Jquery 切换不同图片示例代码
Dec 05 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
Jan 05 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
Feb 18 Javascript
有趣的bootstrap走动进度条
Dec 01 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
Feb 15 Javascript
jQuery为某个div加入行样式
Jun 09 jQuery
JavaScript数组方法的错误使用例子
Sep 13 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
解决layui laydate 时间控件一闪而过的问题
Sep 28 Javascript
JavaScript进阶(一)变量声明提升实例分析
May 09 Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 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分页显示制作详细讲解
2006/10/09 PHP
PHP新手上路(八)
2006/10/09 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
php输入流php://input使用浅析
2014/09/02 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
jquery实现图片预加载
2015/12/25 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
python实现堆栈与队列的方法
2015/01/15 Python
django实现分页的方法
2015/05/26 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
django 多对多表的创建和插入代码实现
2019/09/09 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
幼教求职信
2014/03/12 职场文书
请假条格式范文
2014/04/10 职场文书
大学开学计划书
2014/04/30 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python
OpenCV-Python实现油画效果的实例
2021/06/08 Python
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL