溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

js獲取對(duì)象屬性值的方法怎么使用

發(fā)布時(shí)間:2023-05-04 15:03:42 來(lái)源:億速云 閱讀:75 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(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í)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

js
AI