您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“js獲取對(duì)象屬性值的方法怎么使用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
場(chǎng)景:已知對(duì)象的某屬性,我們需要獲取對(duì)象中的屬性值
js獲取對(duì)象屬性值的方法
通過(guò) . 獲取
通過(guò) [ ] 獲取
let person = { name: "bob", age: 18 }; // 通過(guò) [] 獲取 bob console.log(person['name']); // 加引號(hào),識(shí)別為屬性去對(duì)象中查找 // 通過(guò) . 獲取 bob console.log(person.name);
接下來(lái)介紹一下兩種方法的不同點(diǎn)
[ ]運(yùn)算符可以用數(shù)字作為屬性名,點(diǎn)運(yùn)算符不能
let p = { 1: 'Alex', 2: 33 } console.log(p[1]); // Alex console.log(person.1); // 報(bào)錯(cuò) Uncaught SyntaxError: missing ) after argument list
[ ]運(yùn)算符可以用變量作為屬性名,點(diǎn)運(yùn)算符不能
let person = { name: "bob", age: 18 }; let key = 'name'; console.log(person[key]); // bob 不加引號(hào),識(shí)別為變量 console.log(person.key); // undefined
ps:
用變量key獲取對(duì)象中的屬性值時(shí),點(diǎn)運(yùn)算符會(huì)將key視為一個(gè)屬性去對(duì)象中查找,對(duì)象中沒(méi)有這個(gè)屬性,因此為undefined
在用 [ ] 獲取值時(shí),需要注意的是 [ ] 中是否要加引號(hào)
補(bǔ)充:可選鏈運(yùn)算符 ?.
可選鏈運(yùn)算符(?.)允許讀取位于連接對(duì)象鏈深處的屬性的值,而不必明確驗(yàn)證鏈中的每個(gè)引用是否有效。?. 運(yùn)算符的功能類似于 . 鏈?zhǔn)竭\(yùn)算符,不同之處在于,在引用為空 (nullish ) (null 或者 undefined) 的情況下不會(huì)引起錯(cuò)誤,該表達(dá)式短路返回值是 undefined。與函數(shù)調(diào)用一起使用時(shí),如果給定的函數(shù)不存在,則返回 undefined。
我們?cè)谠L問(wèn)對(duì)象中一個(gè)深度嵌套的子屬性,需要驗(yàn)證之間的引用,如:
let nestedProp = obj.first && obj.first.second
為了避免報(bào)錯(cuò),在訪問(wèn)obj.first.second之前,要保證 obj.first 的值既不是 null,也不是 undefined。如果只是直接訪問(wèn) obj.first.second,而不對(duì) obj.first 進(jìn)行校驗(yàn),則有可能拋出錯(cuò)誤。
有了可選鏈運(yùn)算符(?.),在訪問(wèn) obj.first.second 之前,不再需要明確地校驗(yàn) obj.first 的狀態(tài),再并用短路計(jì)算獲取最終結(jié)果:
let nestedProp = obj.first?.second;
“js獲取對(duì)象屬性值的方法怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。