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 API学Jquery 之三 筛选
Apr 09 Javascript
Javascript匿名函数的一种应用 代码封装
Jun 27 Javascript
Extjs中使用extend(js继承) 的代码
Mar 15 Javascript
jQuery简单实现图片预加载
Apr 20 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 Javascript
jquery实现列表上下移动功能
Feb 25 Javascript
js判断手机号是否正确并返回的实现代码
Jan 17 Javascript
Vue2 使用 Echarts 创建图表实例代码
May 18 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
Jun 13 Javascript
详解vue-resource promise兼容性问题
Jun 20 Javascript
详解vue前后台数据交互vue-resource文档
Jul 19 Javascript
详解微信小程序动画Animation执行过程
Sep 23 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+html5实现无刷新图片上传教程
2016/01/22 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
2016/11/03 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
python写的一个squid访问日志分析的小程序
2014/09/17 Python
Python安装第三方库的3种方法
2015/06/21 Python
简单了解python的一些位运算技巧
2019/07/13 Python
python3 下载网络图片代码实例
2019/08/27 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
解决Redis启动警告问题
2022/02/24 Redis
python 判断文件或文件夹是否存在
2022/03/18 Python