问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

javascript中delete是不是关键字

发布网友 发布时间:2022-04-29 19:07

我来回答

5个回答

懂视网 时间:2022-05-15 10:26

对于数据属性,可以取得:configurable,enumberable,writable和value;

对于访问器属性,可以取得:configurable,enumberable,get和set。

由此我们可知:一个变量或属性是否可以被删除,是由其内部属性Configurable进行控制的,若Configurable为true,则该变量或属性可以被删除,否则不能被删除。

可是我们应该怎么获取这个Configurable值呢,总不能用delete试试能不能删除吧。有办法滴!!

2.3 获取内部属性

ES5为我们提供了Object.getOwnPropertyDescriptor(object, property)来获取内部属性。

如:

var person = {name:'wenzi'};var desp = Object.getOwnPropertyDescriptor(person, 'name'); // person中的name属性console.log( desp ); // {value: "wenzi", writable: true, enumerable: true, configurable: true}

通过Object.getOwnPropertyDescriptor(object, property)我们能够获取到4个内部属性,configurable控制着变量或属性是否可被删除。这个例子中,person.name的configurable是true,则说明是可以被删除的:

console.log( person.name );  
// wenziconsole.log( delete person.name ); 
// true,删除成功console.log( person.name );  
// undefined

我们再回到最开始的那个面试题:

a = 1;var desp = Object.getOwnPropertyDescriptor(window, 'a');console.log( desp.configurable ); // true,可以删除var b = 2;var desp = Object.getOwnPropertyDescriptor(window, 'b');console.log( desp.configurable ); // false,不能删除

跟我们使用delete操作删除变量时产生的结果是一样的。

相关推荐:

JavaScript delete操作符应用实例_javascript技巧

热心网友 时间:2022-05-15 07:34

是关键字. 用于删除对象的属性.语法:

delete object.property 

delete object['property']

delete 操作符会从某个对象上移除指定属性。成功删除的时候回返回 true,否则返回 false。但是,重要的是要考虑以下情况:

如果你删除的属性在对象上不存在,那么delete将不会起作用,但仍会返回true

如果 delete 操作符删除成功,则被删除的属性将从所属的对象上彻底消失。然后,如果该对象的原型链上有一个同名属性,则该对象会从原型链上继承该同名属性。(也就是说delete操作只会在自身的属性上起作用)

任何使用 var 声明的属性不能从全局作用域或函数的作用域中删除。

这样的话,delete操作不能删除任何在全局作用域中的函数(无论这个函数是来自于函数声明或函数表达式)

除了在全局作用域中的函数不能被删除,在对象(object)中的函数是能够用delete操作删除的。

任何用let或const声明的属性不能够从它被声明的作用域中删除。

不可设置的(Non-configurable)属性不能被移除。这意味着像Math, Array, Object内置对象的属性以及使用Object.defineProperty()方法设置为不可设置的属性不能被删除。

var Employee = {
  age: 28,
  name: 'abc',
  designation: 'developer'
}
delete Employee.name;
console.log(Employee.name);// undefined

热心网友 时间:2022-05-15 08:52


Javascript关键字列表:
break delete function return typeof
case do if switch var
catch else in this void
continue false instanceof throw while
debugger finally new true with
default for null try

Javascript未来关键字(Javascript Future Reserved Words)
Javascript还有一些未来关键字,这些字虽然现在没有用到Javascript语言中,但是将来有可能用到。

Javascript未来关键字列表:
abstract double goto native static
boolean enum implements package super
byte export import private synchronized
char extends int protected throws
class final interface public transient
const float long short volatile

热心网友 时间:2022-05-15 10:27

不是

热心网友 时间:2022-05-15 14:26

是啊 你没有用过么?delete
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
不干胶印刷设备多少钱一套 小型不干胶印刷机价格 什么是走水运 水路的特点是什么 疯狂僵尸机游戏怎么玩,植物大战僵尸高清版怎么玩 植物大战僵尸2 植物大战僵尸2戴夫最好的朋友是谁? 怎么下载疯狂的戴夫游戏 游戏下载地址 小红书数据分析工具推荐 三分钟做好一张小红书封面,不同平台超好用的高效率工具你造吗_百度知... 网球王子的剧场版都有哪些啊 网球王子剧场版:英国式庭球城决战DVD情报 祝中秋节快乐的隶书写法? 小米note设置的锁屏自动清理锁屏后QQ和微信为什么不能被清理 祝老师们节日快乐隶书怎么写 密码搞忘了,清除数据后微信账号会不会受到影响? js删除对象里面的属性,怎么不成功 端午节安康隶书怎么写 js object去掉最后属性 隶书节字怎么写 隶书 节 字图片 在IE中,如何使用JS删除DOM对象的属性 校园艺术节隶书怎么写 js移除onmousemove属性? 小米如果把运行内存清理,那么微信,QQ消息还能收到吗? 欢度春节隶书写法 求解,小米手机锁屏后为什么微信收不到信 js对象怎么删除属性呢? 温馨五月 感恩母亲节 隶书书写 情系教师节隶书怎么写 小米手机锁屏清理内存会影响使用吗 如何从JavaScript对象中移除一个属性 小米锁屏清理内存有用吗 节字小篆是什么样的。求图 在js中怎样将一个对象的的部分属性取出来 清风峻节用隶书怎么写 小米手机锁屏清理内存都清理了什么东西? js中如何在遍历对象属性时删除属性 小米手机锁屏清理内存有什么作用 冬至快乐,用隶书怎么写? 教师节的由来隶书字体 如何使用js深度删除对象中value为'空的属性 小米锁屏清理内存会更耗电吗 隶书形式的元旦祝福语 小米手机锁屏后,自动清理内存这个功能成熟吗? 画竹,要“干如篆、节如隶、枝如草、叶如真”。什么意思 js 如何将某个属性设置成隐藏的 苏教版五年级上册数学练习试卷(十一)附加题 干京东物流送货上门‘大件怎么算钱? 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。 要怎么才能开通借呗 九只蝴蝶九个太阳是什么鬼求大神科普