JavaScript delete用法
從運算子名稱可以猜想到,它可以刪除一些東西。
下面通過程式碼例項介紹一下此運算子能刪除何種東西,有什麼限制。
一.基本介紹:
此運算子通常用於刪除物件的屬性,也可以在滿足一定條件下刪除變數。
下面分別通過程式碼例項做一下介紹。
(1).運算子可以刪除物件的屬性:
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let obj={ webName:"螞蟻部落", url:"http://www.softwhy.com", address:"青島市南區" } delete obj.address; console.log(obj.address);
程式碼執行效果截圖如下:
可以看到address屬性已經被刪除。
(2).刪除宣告的變數:
並不是所有宣告的變數都可以刪除。
首先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var webName="螞蟻部落"; address="青島市南區"; delete webName; delete address; console.log(webName); console.log(address);
程式碼執行效果截圖如下:
有上述程式碼執行效果截圖如下,可以得出如下結論:
(1).使用var宣告的變數不能被刪除。
(2).沒有使用var宣告的變數可以被刪除。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼eval("var webName='螞蟻部落';"); delete antzone; console.log(antzone);
程式碼執行效果截圖如下:
可以看到,使用eval()解析一段JavaScript程式碼,儘管使用了var,但是依然可以刪除。
在eval上下問環境中,不使用var宣告也可以被刪除,這裡就再演示。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let arr=["螞蟻部落",4,"青島市南區"]; delete arr.length; console.log(arr.length);
程式碼執行效果截圖如下:
length是內建屬性,無法被刪除,通常內建屬性是無法被刪除的。
二.能否被刪除的原理:
在很多文章經常會說,之所以一個物件屬性不能夠被刪除,是因為此屬性具有DontDelete特性。
現在糾正一下,DontDelete特性是ES3的概念,現在已經被ES5中的Configurable特性值為false所替代。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let antzone = { webName:"螞蟻部落", url: "http://www.softwhy.com", age:4 }; Object.defineProperty(antzone,"webName",{ configurable:false }); delete antzone.webName; console.log(antzone.webName);
程式碼執行效果截圖如下:
可以看到,將webName屬性的configurable特性值設定為false。
這樣delete運算子就無法刪除此類屬性。
關於configurable可以參閱configurable、enumerable和writable介紹一章節。
相關文章
- JavaScript deleteJavaScriptdelete
- Javascript中的deleteJavaScriptdelete
- Rman 中的delete input的用法delete
- Javascript中的in,hasOwnProperty,delete,for/inJavaScriptdelete
- 資料庫Delete的多種用法資料庫delete
- JavaScript this用法JavaScript
- JavaScript用法JavaScript
- 詳解 javascript 的 delete 運算JavaScriptdelete
- javascript hasOwnProperty() 用法JavaScript
- Javascript 的 this 用法JavaScript
- Javascript Promise用法JavaScriptPromise
- mssql sqlserver update delete表別名用法簡介SQLServerdelete
- Mac電腦中delete鍵的七種用法!Macdelete
- 第四篇:new和delete的基本用法delete
- JavaScript 逗號(,)用法JavaScript
- JavaScript prototype原型用法JavaScript原型
- 02JavaScript用法JavaScript
- JavaScript 逗號用法JavaScript
- JavaScript中prototype用法JavaScript
- JavaScript with 語句用法JavaScript
- 資料庫關鍵詞 drop、truncate和delete的用法資料庫delete
- JavaScript中的setInterval用法JavaScript
- JavaScript中document的用法JavaScript
- javascript delete運算子刪除array陣列元素JavaScriptdelete陣列
- JavaScript陣列常見用法JavaScript陣列
- javascript textContent屬性用法JavaScript
- javascript中加號(+)用法介紹JavaScript
- 關於JavaScript中arguments的用法JavaScript
- JavaScript 裡三個點 ... 的用法JavaScript
- javascript onbeforeunload事件用法JavaScript事件
- javascript callee和caller屬性用法JavaScript
- javascript的this用法簡單介紹JavaScript
- javascript arguments用法簡單介紹JavaScript
- javascript this 用法例項程式碼解析JavaScript
- javascript this用法和簡單例項JavaScript單例
- delete input 與 delete all inputdelete
- delete OBSOLETE 與 delete expirieddelete
- deletedelete