js小知識 delete操做符

說明:delete操做符用於刪除對象的某個屬性。數組

語法:函數

delete object.property  //刪除 對象.屬性
delete object['property']  //刪除 對象['屬性']

返回值:bool類型,成功刪除的時候回返回true,不然返回false。spa

注意:code

  • 若是你刪除的屬性在對象上不存在,那麼delete將不會起做用,但仍會返回true
  • 若是 delete 操做符刪除成功,則被刪除的屬性將從所屬的對象上完全消失。而後,若是該對象的原型鏈上有一個同名屬性,則該對象會從原型鏈上繼承該同名屬性。(也就是說delete操做只會在自身的屬性上起做用)
  • 任何使用 var 聲明的屬性不能從全局做用域或函數的做用域中刪除。
  1. 這樣的話,delete操做不能刪除任何在全局做用域中的函數(不管這個函數是來自於函數聲明或函數表達式)
  2. 除了在全局做用域中的函數不能被刪除,在對象(object)中的函數是可以用delete操做刪除的。
  • 任何用letconst聲明的屬性不可以從它被聲明的做用域中刪除。不可設置的(Non-configurable)屬性不能被移除。這意味着像MathArrayObject內置對象的屬性以及使用Object.defineProperty()方法設置爲不可設置的屬性不能被刪除。
  • 任何使用var聲明的變量都會被標記爲不可設置的。
  • 當用 delete 操做符刪除一個數組元素時,被刪除的元素已經再也不屬於該數組。若是你想讓一個數組元素繼續存在可是其值是 undefined,那麼可使用將 undefined 賦值給這個元素而不是使用 delete

原文連接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/delete對象

相關文章
相關標籤/搜索