在javascript中,可以使用delete運算子刪除鍵值對,語法格式為「delete 物件名稱.屬性」。 delete操作符用於刪除物件的某個屬性;如果沒有指向這個屬性的引用,那麼它最終會被釋放。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
delete 運算子用來刪除物件的某個屬性;如果沒有指向這個屬性的引用,那麼它最終會被釋放。
語法:
delete expression // expression 的计算结果应该是某个属性的引用,例如: delete object.property delete object['property']
object:物件的名稱,或計算結果為物件的表達式。
property:要刪除的屬性。
對於所有情況都是true,除非屬性是一個自身的 不可配置的屬性,在這種情況下,非嚴格模式會傳回 false。
在嚴格模式下,如果是屬性是自己無法設定的屬性,就會拋出TypeError。
delete 運算子會從某個物件移除指定屬性。成功刪除的時候會回傳 true,否則回傳 false。
但是,以下情況需要重點考慮:
如果你試圖刪除的屬性不存在,那麼delete將不會起任何作用,但仍會傳回true
如果物件的原型鏈上有一個與待刪除屬性同名的屬性,那麼刪除屬性之後,物件會使用原型鏈上的那個屬性(也就是說,delete操作只會在自身的屬性上運作)
任何使用 var 宣告的屬性都不能從全域作用域或函數的作用域中刪除。
這樣的話,delete運算不能刪除任何在全域作用域中的函數(無論這個函數是來自於函數宣告或函數表達式)
除了在全域作用域中的函數不能被刪除,在物件(object)中的函數是能夠用delete操作刪除的。
任何用let或const宣告的屬性不能夠從它被宣告的作用域中刪除。
不可設定的(Non-configurable)屬性不能移除。這表示像Math, Array, Object內建物件的屬性以及使用Object.defineProperty()方法設定為不可設定的屬性不能被刪除。
以物件json為例:
var json = { name:'张三', age:'23' };
刪除json中屬性age的方法
delete json.age;
【推薦學習:javascript進階教學】
以上是javascript如何刪除鍵值對的詳細內容。更多資訊請關注PHP中文網其他相關文章!