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 EasyPager 分页函数
May 25 Javascript
让人印象深刻的10个jQuery手风琴效果应用
May 08 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
Jun 18 Javascript
javascript之典型高阶函数应用介绍二
Jan 10 Javascript
jquery选择器-根据多个属性选择示例代码
Oct 21 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
May 05 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
May 20 Javascript
jQuery中选择器的基础使用教程
May 23 Javascript
浅谈javascript中的事件冒泡和事件捕获
Dec 28 Javascript
详解如何在微信小程序中愉快地使用sass
Jul 30 Javascript
Layui 动态禁止select下拉的例子
Sep 03 Javascript
layui监听工具栏的实例(操作列表按钮)
Sep 10 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数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
js调用flash的效果代码
2008/04/26 Javascript
js 复制或插入Html的实现方法小结
2010/05/19 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
在Python中使用dict和set方法的教程
2015/04/27 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
python GUI计算器的实现
2020/10/09 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
大学新生军训个人的自我评价
2013/10/03 职场文书
平安校园建设方案
2014/05/02 职场文书
专科生就业求职信
2014/06/22 职场文书
2014年护理部工作总结
2014/11/14 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
JavaScript实现简单拖拽效果
2021/09/15 Javascript
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers