自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript刪除對象的某個屬性的方法

開發(fā) 前端
delete是刪除對象的屬性沒有任何剩菜,剩下的唯一真正的方法,但它的工作比其“替代”設(shè)置慢100倍。

[[398353]]

1. delete

delete是刪除對象的屬性沒有任何剩菜,剩下的唯一真正的方法,但它的工作比其“替代”設(shè)置慢100倍 object[key] = undefined

  1. var myObject = { 
  2.     "ircEvent": "PRIVMSG", 
  3.     "method": "newURI", 
  4.     "regex": "^http://.*" 
  5. }; 
  6. delete myObject.regex; 
  7.  
  8. console.log(myObject); 

delete 操作符會從某個對象上移除指定屬性。成功刪除的時候回返回 true,否則返回 false。但是,以下情況需要重點考慮:

如果你試圖刪除的屬性不存在,那么delete將不會起任何作用,但仍會返回true

如果對象的原型鏈上有一個與待刪除屬性同名的屬性,那么刪除屬性之后,對象會使用原型鏈上的那個屬性(也就是說,delete操作只會在自身的屬性上起作用)

任何使用 var 聲明的屬性不能從全局作用域或函數(shù)的作用域中刪除。

這樣的話,delete操作不能刪除任何在全局作用域中的函數(shù)(無論這個函數(shù)是來自于函數(shù)聲明或函數(shù)表達式)

除了在全局作用域中的函數(shù)不能被刪除,在對象(object)中的函數(shù)是能夠用delete操作刪除的。

任何用let或const聲明的屬性不能夠從它被聲明的作用域中刪除。

不可設(shè)置的(Non-configurable)屬性不能被移除。這意味著像Math, Array, Object內(nèi)置對象的屬性以及使用Object.defineProperty()方法設(shè)置為不可設(shè)置的屬性不能被刪除。

2.  obj.field = undefined;

這個選擇不是這個問題的正確答案!但是,如果你小心使用它,你可以大大加快一些算法。如果您delete在循環(huán)中使用并且在性能方面存在問題,請閱讀詳細解釋

  1. var obj = { 
  2.     field: 1      
  3. }; 
  4. obj.field = undefined

3. 數(shù)組中使用delete

在數(shù)組中,與普通的舊對象不同,使用delete在表單中留下垃圾,null在數(shù)組中創(chuàng)建一個“洞”, 而且length不變。

  1. var array = [1, 2, 3, 4]; 
  2. delete array[2]; 
  3. /* Expected result --> [1, 2, 4] 
  4.  * Actual result   --> [1, 2, null, 4] 
  5.  */ 

4. 數(shù)組中使用splice

arrayObject.splice(index,howmany,item1,.....,itemX)

index: 必需。整數(shù),規(guī)定添加/刪除項目的位置,使用負數(shù)可從數(shù)組結(jié)

尾處規(guī)定位置。

howmany: 必需。要刪除的項目數(shù)量。如果設(shè)置為 0,則不會刪除項目。

item1: 可選。向數(shù)組添加的新項目。

  1. var arr = new Array(6) 
  2. arr[0] = "George" 
  3. arr[1] = "John" 
  4. arr[2] = "Thomas" 
  5. arr[3] = "James" 
  6. arr[4] = "Adrew" 
  7. arr[5] = "Martin" 
  8.  
  9. document.write(arr + "<br />") 
  10. arr.splice(2,0,"William") 
  11. document.write(arr + "<br />") 
  12. /* 
  13. *George,John,Thomas,James,Adrew,Martin 
  14. *George,John,William,Thomas,James,Adrew,Martin 
  15. */ 

本文轉(zhuǎn)載自微信公眾號「大遷世界」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系大遷世界公眾號。

 

責(zé)任編輯:趙寧寧 來源: 大遷世界
相關(guān)推薦

2021-03-26 23:41:19

JavaScript對象開發(fā)

2023-06-02 15:42:51

JavaScript數(shù)據(jù)結(jié)構(gòu)對象

2022-07-15 08:22:42

對象符串鍵Symbol

2019-04-23 15:20:26

JavaScript對象前端

2010-09-28 10:33:59

HTML DOM Ch

2023-10-11 13:13:46

?PostmanJavaScrip

2018-12-19 19:30:46

JavaScript創(chuàng)建對象前端

2020-07-14 13:16:32

JavaScript解構(gòu)對象

2023-11-21 15:23:15

JavaScript工具

2011-05-18 14:40:07

XML

2021-04-07 10:12:05

Javascript對象拷貝開發(fā)

2021-05-14 00:00:15

JavaScript開發(fā)代碼

2010-09-13 15:15:04

0級DOMDOM

2021-08-01 16:30:18

Python編程語言

2022-10-08 23:46:47

JavaScript對象開發(fā)

2010-11-16 16:36:40

Oracle刪除用戶

2021-07-27 22:56:00

JavaScript編程開發(fā)

2021-10-21 18:47:37

JavaScript面向對象

2024-08-02 08:43:24

JavaScript開發(fā)者工具箱深拷貝

2022-01-20 09:58:44

Python元素列表
點贊
收藏

51CTO技術(shù)棧公眾號