小編給大家分享一下JavaScript怎么刪除對象的某個屬性,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1、js屬于一種解釋性腳本語言;2、在絕大多數瀏覽器的支持下,js可以在多種平臺下運行,擁有著跨平臺特性;3、js屬于一種弱類型腳本語言,對使用的數據類型未做出嚴格的要求,能夠進行類型轉換,簡單又容易上手;4、js語言安全性高,只能通過瀏覽器實現信息瀏覽或動態交互,從而有效地防止數據的丟失;5、基于對象的腳本語言,js不僅可以創建對象,也能使用現有的對象。
delete是刪除對象的屬性沒有任何剩菜,剩下的唯一真正的方法,但它的工作比其“替代”設置慢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 聲明的屬性不能從全局作用域或函數的作用域中刪除。
這樣的話,delete操作不能刪除任何在全局作用域中的函數(無論這個函數是來自于函數聲明或函數表達式)
除了在全局作用域中的函數不能被刪除,在對象(object)中的函數是能夠用delete操作刪除的。
任何用let或const聲明的屬性不能夠從它被聲明的作用域中刪除。
不可設置的(Non-configurable)屬性不能被移除。這意味著像Math, Array, Object內置對象的屬性以及使用Object.defineProperty()方法設置為不可設置的屬性不能被刪除。
這個選擇不是這個問題的正確答案!但是,如果你小心使用它,你可以大大加快一些算法。如果您delete在循環中使用并且在性能方面存在問題,請閱讀詳細解釋
var obj = { field: 1 }; obj.field = undefined;
在數組中,與普通的舊對象不同,使用delete在表單中留下垃圾,null在數組中創建一個“洞”, 而且length不變。
var array = [1, 2, 3, 4]; delete array[2]; /* Expected result --> [1, 2, 4] * Actual result --> [1, 2, null, 4] */
arrayObject.splice(index,howmany,item1,.....,itemX)
index: 必需。整數,規定添加/刪除項目的位置,使用負數可從數組結
尾處規定位置。
howmany: 必需。要刪除的項目數量。如果設置為 0,則不會刪除項目。
item1: 可選。向數組添加的新項目。
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 />")
以上是“JavaScript怎么刪除對象的某個屬性”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。