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

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

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

delete 的返回值

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

返回 boolean 類型

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

false 一定是刪除失敗

var obj = {
  a: 1,
  b: 2
};
// 刪除對象屬性
console.log(delete obj.a); // true
// 刪除對象不存在的屬性
console.log(delete obj.name); // true
// 刪除全局對象 obj ,因為 var 聲明默認(rèn)會掛載到全局 window 對象上
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 刪除原型上的屬性

  • 不會遍歷原型鏈刪除
function User() {
  this.name = "云牧";
}
User.prototype.name = "黛玉";
const p = new User();
// 刪除的是 p 對象的自身屬性
console.log(delete p.name); // true
// p.name 依然可用,因為原型鏈可以查找到 name
console.log(p.name); // 黛玉
// 刪除原型上的屬性
console.log(delete User.prototype.name); // true
// 實例和原型上都沒有 name
console.log(p.name); // undefined

delete 刪除的到底是什么

  • 刪除的是操作表達(dá)式結(jié)果
  • 對于值,字面量或不可達(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)格模式刪除報錯

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

下面是錯誤的例子:

"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 語法解析的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

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

    JavaScript 原型與原型鏈詳情

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

合肥市| 陇川县| 北辰区| 武宁县| 修文县| 桑日县| 曲松县| 陆河县| 临沧市| 康保县| 石棉县| 平阴县| 龙井市| 佛学| 开远市| 博爱县| 天等县| 长武县| 吉首市| 祁东县| 河北省| 电白县| 乌苏市| 阿合奇县| 富平县| 资溪县| 桐乡市| 山西省| 杂多县| 平乐县| 贡山| 晋宁县| 泰安市| 三穗县| 运城市| 美姑县| 额敏县| 丰镇市| 凤翔县| 双江| 呼伦贝尔市|