javascript的delete運(yùn)算符知識(shí)點(diǎn)總結(jié)
delete是一元操作符,它用來(lái)刪除對(duì)象屬性或者數(shù)組元素。就像 賦值、遞增、遞減運(yùn)算符一樣,delete也是具有副作用的,它是用來(lái)做刪除操作的,不是用來(lái)返回一個(gè)值的,例如:
var o = { x: 1, y: 2}; // 定義一個(gè)對(duì)象 delete o.x; // 刪除一個(gè)屬性 "x" in o // => false:這個(gè)屬性在對(duì)象中不再存在 var a = [1,2,3]; // 定義一個(gè)數(shù)組 delete a[2]; // 刪除最后一個(gè)數(shù)組元素 2 in a; // => false:元素2在數(shù)組中已經(jīng)不存在了 a.length // => 3:注意,數(shù)組長(zhǎng)度并沒(méi)有改變,盡管上一行代碼刪除
需要注意的是,刪除屬性或者刪除數(shù)組元素不僅僅是設(shè)置了一個(gè) undefined的值。當(dāng)刪除一個(gè)屬性時(shí),這個(gè)屬性將不再存在。讀取一個(gè)不 存在的屬性將返回undefined,但是可以通過(guò)in運(yùn)算符(見(jiàn)4.9.3節(jié))來(lái)檢測(cè)這個(gè)屬性是否在對(duì)象中存在。
delete希望他的操作數(shù)是一個(gè)左值,如果它不是左值,那么delete將 不進(jìn)行任何操作同時(shí)返回true。否則,delete將試圖刪除這個(gè)指定的左 值。如果刪除成功,delete將返回true。然而并不是所有的屬性都可刪 除,一些內(nèi)置核心和客戶端屬性是不能刪除的,用戶通過(guò)var語(yǔ)句聲明 的變量不能刪除。同樣,通過(guò)function語(yǔ)句定義的函數(shù)和函數(shù)參數(shù)也不能刪除。
在ECMAScript 5嚴(yán)格模式中,如果delete的操作數(shù)是非法的,比如 變量、函數(shù)或函數(shù)參數(shù),delete操作將拋出一個(gè)語(yǔ)法錯(cuò)誤 (SyntaxError)異常,只有操作數(shù)是一個(gè)屬性訪問(wèn)表達(dá)式(見(jiàn)4.4節(jié))的 時(shí)候它才會(huì)正常工作。在嚴(yán)格模式下,delete刪除不可配置的屬性(參 照6.7節(jié))時(shí)會(huì)拋出一個(gè)類型錯(cuò)誤異常。在非嚴(yán)格模式下,這些delete操 作都不會(huì)報(bào)錯(cuò),只是簡(jiǎn)單地返回false,以表明操作數(shù)不能執(zhí)行刪除操作。
這里有一些關(guān)于delete運(yùn)算符的例子:
var o = {x:1, y:2}; //定義一個(gè)變量,初始化為對(duì)象 delete o.x; //刪除一個(gè)對(duì)象屬性,返回true typeof o.x; //屬性不存在,返回"undefined" delete o.x; //刪除不存在的屬性,返回true delete o; //不能刪除通過(guò)var聲明的變量,返回false //在嚴(yán)格模式下,將拋出一個(gè)異常 delete 1; //參數(shù)不是一個(gè)左值,返回true this.x = 1; //給全局對(duì)象定義一個(gè)屬性,這里沒(méi)有使用 var delete x; //試圖刪除它,在非嚴(yán)格模式下返回true //在嚴(yán)格模式下會(huì)拋出異常,這時(shí)使用"delete this.x"來(lái)代替 x; //運(yùn)行時(shí)錯(cuò)誤,沒(méi)有定義x
以上就是關(guān)于javascript中delete運(yùn)算符的基礎(chǔ)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
- JavaScript中展開運(yùn)算符及應(yīng)用的實(shí)例代碼
- 原生js中運(yùn)算符及流程控制示例詳解
- JS運(yùn)算符優(yōu)先級(jí)與表達(dá)式示例詳解
- JavaScript邏輯運(yùn)算符相關(guān)總結(jié)
- JavaScript中使用Spread運(yùn)算符的八種方法總結(jié)
- 詳解JavaScript中的Object.is()與"==="運(yùn)算符總結(jié)
- JavaScript布爾運(yùn)算符原理使用解析
- js表達(dá)式與運(yùn)算符簡(jiǎn)單操作示例
- JS運(yùn)算符簡(jiǎn)單用法示例
- 分享幾個(gè)JavaScript運(yùn)算符的使用技巧
相關(guān)文章
深入理解JavaScript系列(49):Function模式(上篇)
這篇文章主要介紹了深入理解JavaScript系列(49):Function模式(上篇),本文講解了回調(diào)函數(shù)、配置對(duì)象、返回函數(shù)、偏應(yīng)用、Currying等內(nèi)容,需要的朋友可以參考下2015-03-03實(shí)例解析JS布爾對(duì)象的toString()方法和valueOf()方法
這篇文章主要介紹了JS的布爾對(duì)象的toString()方法和valueOf()方法,是JavaScript入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10深入學(xué)習(xí)JavaScript中的Rest參數(shù)和參數(shù)默認(rèn)值
這篇文章主要介紹了深入學(xué)習(xí)JavaScript中的Rest參數(shù)和參數(shù)默認(rèn)值,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-07-07javascript中hasOwnProperty() 方法使用指南
這篇文章主要詳細(xì)介紹了javascript中hasOwnProperty() 方法使用指南,非常的全面,推薦給有需要的小伙伴參考下。2015-03-03