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 相关文章推荐
关于锚点跳转及jQuery下相关操作与插件
Oct 01 Javascript
Javascript使用post方法提交数据实例
Aug 03 Javascript
jquery无限级联下拉菜单简单实例演示
Nov 23 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 Javascript
微信小程序 wxapp画布 canvas详细介绍
Oct 31 Javascript
Bootstrap CSS组件之导航(nav)
Dec 17 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
Jan 18 Javascript
JS按钮闪烁功能的实现代码
Jul 21 Javascript
Node.js原生api搭建web服务器的方法步骤
Feb 15 Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 Javascript
vue-dplayer 视频播放器实例代码
Nov 08 Javascript
vue+element-ui表格封装tag标签使用插槽
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
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
PHP简洁函数小结
2011/08/12 PHP
smarty中post用法实例
2014/11/28 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
总结Python编程中函数的使用要点
2016/03/20 Python
python中set常用操作汇总
2016/06/30 Python
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
python方法生成txt标签文件的实例代码
2018/05/10 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
口腔医学技术应届生求职信
2013/11/09 职场文书
医药个人求职信范文
2014/01/29 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
优秀纪检干部材料
2014/08/27 职场文书
护士2014年终工作总结
2014/11/11 职场文书
高三英语复习计划
2015/01/19 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android