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 相关文章推荐
ASP.NET中基于JQUERY的高性能的TreeView补充
Feb 23 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
Nov 18 Javascript
jquery遍历table的tr获取td的值实现方法
May 19 Javascript
jQuery中的AjaxSubmit使用讲解
Sep 25 Javascript
Bootstrap导航条学习使用(二)
Feb 08 Javascript
Ajax实现不刷新取最新商品
Mar 01 Javascript
使用JavaScript实现表格编辑器(实例讲解)
Aug 02 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
聊聊JS动画库 Velocity.js的使用
Mar 13 Javascript
解决angularjs WdatePicker ng-model的问题
Sep 13 Javascript
layui表格内放置图片,并点击放大的实例
Sep 10 Javascript
vue实现动态表格提交参数动态生成控件的操作
Nov 09 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 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
js实现文字在按钮上滚动的方法
2015/08/20 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
python为什么要安装到c盘
2020/07/20 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
简历的自荐信
2013/12/19 职场文书
手工社团活动方案
2014/02/17 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
2014年语文教研组工作总结
2014/12/06 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
干部个人考察材料
2014/12/24 职场文书
学习保证书
2015/01/17 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书
致青春观后感
2015/06/09 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP