JavaScript如何刪除對象的某個屬性詳析
1、delete
delete是刪除對象的屬性沒有任何剩菜,剩下的唯一真正的方法,但它的工作比其“替代”設(shè)置慢100倍 object[key] = undefined
var myObject = { "ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*" }; delete myObject.regex; console.log(myObject);
delete 操作符會從某個對象上移除指定屬性。成功刪除的時候回返回 true,否則返回 false。但是,以下情況需要重點考慮:
如果你試圖刪除的屬性不存在,那么delete將不會起任何作用,但仍會返回true
如果對象的原型鏈上有一個與待刪除屬性同名的屬性,那么刪除屬性之后,對象會使用原型鏈上的那個屬性(也就是說,delete操作只會在自身的屬性上起作用)
任何使用 var 聲明的屬性不能從全局作用域或函數(shù)的作用域中刪除。
這樣的話,delete操作不能刪除任何在全局作用域中的函數(shù)(無論這個函數(shù)是來自于函數(shù)聲明或函數(shù)表達(dá)式)
除了在全局作用域中的函數(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)中使用并且在性能方面存在問題,請閱讀詳細(xì)解釋
var obj = { field: 1 }; obj.field = undefined;
3、數(shù)組中使用delete
在數(shù)組中,與普通的舊對象不同,使用delete在表單中留下垃圾,null在數(shù)組中創(chuàng)建一個“洞”, 而且length不變。
var array = [1, 2, 3, 4]; delete array[2]; /* Expected result --> [1, 2, 4] * Actual result --> [1, 2, null, 4] */
4、數(shù)組中使用splice
arrayObject.splice(index,howmany,item1,.....,itemX)
index: 必需。整數(shù),規(guī)定添加/刪除項目的位置,使用負(fù)數(shù)可從數(shù)組結(jié)
尾處規(guī)定位置。
howmany: 必需。要刪除的項目數(shù)量。如果設(shè)置為 0,則不會刪除項目。
item1: 可選。向數(shù)組添加的新項目。
var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />") arr.splice(2,0,"William") document.write(arr + "<br />") /* *George,John,Thomas,James,Adrew,Martin *George,John,William,Thomas,James,Adrew,Martin */
總結(jié)
到此這篇關(guān)于JavaScript如何刪除對象的某個屬性的文章就介紹到這了,更多相關(guān)JavaScript刪除對象某個屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
自用js開發(fā)框架小成 學(xué)習(xí)js的朋友可以看看
前段時間項目需要用到j(luò)s樹,找了好多都不符合項目需求,后來發(fā)現(xiàn)了梅花雪樹和js框架,類似C#名稱空間的用法讓我眼前一亮,遂拿來主義,讀了幾遍代碼后就開工了(我是個急性子呵呵),完成了大部分,最近才找出來測試了下。2010-11-11詳解webpack+ES6+Sass搭建多頁面應(yīng)用
這篇文章主要介紹了webpack+ES6+Sass搭建多頁面應(yīng)用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11微信小程序開發(fā)(二):頁面跳轉(zhuǎn)并傳參操作示例
這篇文章主要介紹了微信小程序開發(fā)頁面跳轉(zhuǎn)并傳參操作,結(jié)合實例形式詳細(xì)分析了微信小程序頁面跳轉(zhuǎn)并傳參相關(guān)操作技巧,需要的朋友可以參考下2020-06-06JavaScript使用Replace進(jìn)行字符串替換的方法
這篇文章主要介紹了JavaScript使用Replace進(jìn)行字符串替換的方法,涉及Replace進(jìn)行一次替換與全部替換的技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04