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
- 資料庫Delete的多種用法資料庫delete
- JavaScript this用法JavaScript
- JavaScript用法JavaScript
- mssql sqlserver update delete表別名用法簡介SQLServerdelete
- Mac電腦中delete鍵的七種用法!Macdelete
- Javascript Promise用法JavaScriptPromise
- 02JavaScript用法JavaScript
- JavaScript 逗號用法JavaScript
- JavaScript 逗號(,)用法JavaScript
- JavaScript prototype原型用法JavaScript原型
- JavaScript with 語句用法JavaScript
- 資料庫關鍵詞 drop、truncate和delete的用法資料庫delete
- JavaScript陣列常見用法JavaScript陣列
- JavaScript:async/await的基礎用法JavaScriptAI
- 關於JavaScript中arguments的用法JavaScript
- JavaScript 裡三個點 ... 的用法JavaScript
- JavaScript閉包原理與用法例項JavaScript
- URLSearchParams delete()delete
- FormData delete()ORMdelete
- 前端 JavaScript 中 JSON.stringify() 的基本用法前端JavaScriptJSON
- Map delete() 方法delete
- WeakMap delete() 方法delete
- WeakSet delete() 方法delete
- SQL__DELETESQLdelete
- Set delete() 方法delete
- URLSearchParams delete() 方法delete
- git delete and revertGitdelete
- MySQL Delete PHPMySqldeletePHP
- javascript中call()、apply()、bind()的用法終於理解JavaScriptAPP
- JavaScript中apply、call、bind的區別與用法JavaScriptAPP
- OUTLOOK - Unable to Delete Meetingsdelete
- 740. Delete and Earndelete
- javascript中的資料型別及其常見用法JavaScript資料型別
- [譯]JavaScript async / await:好處、坑和正確用法JavaScriptAI
- JavaScript 4/30: 陣列的 map, filter 和 reduce 用法JavaScript陣列Filter
- 450-Delete Node in a BSTdelete
- 記憶體(new delete )記憶體delete