最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

delete?語法的本質(zhì)深入解析

 更新時(shí)間:2023年03月02日 09:15:08   作者:云牧  
這篇文章主要為大家介紹了delete?語法的本質(zhì)深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

delete 的返回值

delete 語法是用于 JS 刪除對(duì)象屬性和數(shù)組元素

返回 boolean 類型

true 代表刪除沒有發(fā)生異常,但不一定是刪除成功

false 一定是刪除失敗

var obj = {
  a: 1,
  b: 2
};
// 刪除對(duì)象屬性
console.log(delete obj.a); // true
// 刪除對(duì)象不存在的屬性
console.log(delete obj.name); // true
// 刪除全局對(duì)象 obj ,因?yàn)?var 聲明默認(rèn)會(huì)掛載到全局 window 對(duì)象上
console.log(delete obj); // false
console.log(obj); // { b: 2 }

delete 不能刪除哪些屬性

  • 任何用 var 聲明的屬性,不能從全局或函數(shù)作用域刪除
  • 任何用 let 或者 const 聲明的屬性 ,不能從它聲明的作用域刪除
  • 不可配置(configurable: false)的屬性不能刪除
// var
function testVar() {
  var a = 1;
  console.log(delete a); // false
  console.log(a); // 1
}
testVar();
// let const
function testLet() {
  let a = 2;
  console.log(delete a); // false
  console.log(a); // 2
}
testLet();
// configurable
const obj = {};
Object.defineProperty(obj, "name", { configurable: false });
console.log(delete obj.name); // false
console.log("delete undefined", delete undefined);
console.log(Object.getOwnPropertyDescriptor(global, "undefined"));
console.log("delete Infinity", delete Infinity);
console.log("delete NaN", delete NaN);

delete 刪除原型上的屬性

  • 不會(huì)遍歷原型鏈刪除
function User() {
  this.name = "云牧";
}
User.prototype.name = "黛玉";
const p = new User();
// 刪除的是 p 對(duì)象的自身屬性
console.log(delete p.name); // true
// p.name 依然可用,因?yàn)樵玩溈梢圆檎业?name
console.log(p.name); // 黛玉
// 刪除原型上的屬性
console.log(delete User.prototype.name); // true
// 實(shí)例和原型上都沒有 name
console.log(p.name); // undefined

delete 刪除的到底是什么

  • 刪除的是操作表達(dá)式結(jié)果
  • 對(duì)于值,字面量或不可達(dá)的引用,不操作,直接返回 true
  • 引用類型,刪除引用
var nameVar = "nameVar";
nameNotVar = "nameNotVar";
// var 聲明的不可以刪除
console.log(Object.getOwnPropertyDescriptor(window, "nameVar")); // configurable: false
// 非 var 聲明的可以刪除
console.log(Object.getOwnPropertyDescriptor(window, "nameNotVar")); // configurable: true

嚴(yán)格模式刪除報(bào)錯(cuò)

  • 對(duì)于 變量,函數(shù)名,函數(shù)參數(shù)SyntaxError
  • 對(duì)于 configurable: falseTypeError
  • 典型的 delete super.property :ReferenceError

下面是錯(cuò)誤的例子:

"use strict";
// 變量
var name = "name";
delete name;
// 函數(shù)和函數(shù)參數(shù)
function fn() {}
delete fn;
function fn(name) {
  delete name;
}
fm();
// configurableTypeError
const person = {
  name: "帥哥"
};
Object.defineProperty(person, "name", {
  configurable: false
});
delete person.name;
// 嚴(yán)格 refer
class Parent {
  constructor(name) {
    this.name = name;
  }
  getName() {}
}
class Child extends Parent {
  constructor(name, age) {
    super(name);
    this.age = age;
  }
  deleteAny() {
    delete super.getName;
  }
}
var child = new Child("child", 18);
child.deleteAny();

以上就是delete 語法的本質(zhì)深入解析的詳細(xì)內(nèi)容,更多關(guān)于delete 語法解析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解JS前端使用迭代器和生成器原理及示例

    詳解JS前端使用迭代器和生成器原理及示例

    這篇文章主要為大家介紹了詳解JS前端使用迭代器和生成器原理及示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • JavaScript 對(duì)象詳細(xì)整理總結(jié)

    JavaScript 對(duì)象詳細(xì)整理總結(jié)

    這篇文章主要介紹了JavaScript 對(duì)象詳細(xì)整理總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 微前端之?js隔離?樣式隔離?元素隔離問題詳解

    微前端之?js隔離?樣式隔離?元素隔離問題詳解

    這篇文章主要為大家介紹了微前端之?js隔離?樣式隔離?元素隔離問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • JavaScript 原型與原型鏈詳情

    JavaScript 原型與原型鏈詳情

    這篇文章主要介紹了JavaScript 原型與原型鏈,JavaScript常被描述為一種基于原型的語言,對(duì)象以其原型為模板、從原型繼承屬性和放法。原型對(duì)象也可能擁有原型,并從中繼承屬性和方法,一層一層以此類推。這種關(guān)系常被稱為原型鏈,帶著簡(jiǎn)單的了解看看下文內(nèi)容具體介紹吧
    2021-10-10
  • js封裝一個(gè)websocket實(shí)現(xiàn)及使用詳解

    js封裝一個(gè)websocket實(shí)現(xiàn)及使用詳解

    這篇文章主要為大家介紹了js封裝一個(gè)websocket實(shí)現(xiàn)示例及使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Fabric.js?樣式不更新解決方法案例

    Fabric.js?樣式不更新解決方法案例

    這篇文章主要為大家介紹了Fabric.js?樣式不更新解決方法案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 微信小程序 詳解下拉加載與上拉刷新實(shí)現(xiàn)方法

    微信小程序 詳解下拉加載與上拉刷新實(shí)現(xiàn)方法

    這篇文章主要介紹了微信小程序 詳解下拉加載與上拉刷新實(shí)現(xiàn)方法的相關(guān)資料,這里介紹了兩種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-01-01
  • 無UI?組件Headless框架邏輯原理用法示例詳解

    無UI?組件Headless框架邏輯原理用法示例詳解

    這篇文章主要為大家介紹了無UI?組件Headless框架邏輯原理用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 微信小程序 圖片邊框解決方法

    微信小程序 圖片邊框解決方法

    這篇文章主要介紹了微信小程序 圖片邊框解決方法的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 開發(fā)效率翻倍的Web?API使用技巧

    開發(fā)效率翻倍的Web?API使用技巧

    這篇文章主要為大家介紹了開發(fā)效率翻倍的Web?API使用技巧詳解,主要選取了一些有趣且有用的?Web?API?進(jìn)行介紹,并且?API?可以在線運(yùn)行預(yù)覽
    2023-05-05

最新評(píng)論

胶州市| 色达县| 巴林右旗| 长岭县| 凌云县| 兴义市| 于田县| 南溪县| 江陵县| 万宁市| 洛阳市| 凌源市| 鄂伦春自治旗| 循化| 北宁市| 张家口市| 拉萨市| 耿马| 铁力市| 浦东新区| 陆良县| 鄂托克旗| 长子县| 城市| 西乌珠穆沁旗| 晴隆县| 大方县| 丹巴县| 什邡市| 乌拉特前旗| 五峰| 巫山县| 炉霍县| 铁岭县| 温宿县| 思茅市| 渭南市| 饶阳县| 嵊泗县| 内黄县| 株洲县|