Valikuline muutuv operaator jätkab teed, kuni jõuab atribuudi väärtuseni või ilmneb tõrge:
lase töötajal = {eesnimi : 'John' ,
perekonnanimi : 'Doe' ,
Vanus : 3. 4
} ;
konsool. logi ( töötaja. aadress ? . tõmblukk ) ;
Kui oleksime proovinud samale atribuudi väärtusele juurde pääseda ilma valikulist aheldamisoperaatorit kasutamata, oleksime saanud veateate:
lase töötajal = {
eesnimi : 'John' ,
perekonnanimi : 'Doe' ,
Vanus : 3. 4
} ;
konsool. logi ( töötaja. aadress . tõmblukk ) ;
Valikuline aheldamine meetodikutsetel
Valikuline aheldamine töötab ka meetodikutsete puhul. Saate kasutada valikulist aheldamist, kui te pole kindel, kas meetod on objekti sees olemas. Kasutusjuhtumi näide on API-st hangitud andmed, mis võivad olenevalt kasutaja seadmest sisaldada teatud funktsioone või mitte.
lase töötajal = {
eesnimi : 'John' ,
perekonnanimi : 'Doe' ,
Vanus : 3. 4
} ;
konsool. logi ( töötaja. meetod ? . ( ) ) ;
Ilma valikulise aheldamiseta:
lase töötajal = {
eesnimi : 'John' ,
perekonnanimi : 'Doe' ,
Vanus : 3. 4
} ;
konsool. logi ( töötaja. meetod ( ) ) ;
Valikulist aheldamisoperaatorit saab vigade vältimiseks kasutada ka mitu korda ühes lauses.
Valikulise aheldamise kombineerimine Nullishi koalesseerimisoperaatoriga
Valikulist aheldamist saab siduda ka ?? operaator annab vaikeväärtuse juhuks, kui atribuuti või meetodit ei eksisteeri:
lase töötajal = {eesnimi : 'John' ,
perekonnanimi : 'Doe' ,
Vanus : 3. 4
} ;
konsool. logi ( töötaja. meetod ? . ( ) ?? 'Funktsiooni pole olemas' ) ;
Vaikeväärtus võib olla ka mõni funktsioonikutse.
Valikuline aheldamise ülekasutus
Koodi loetavuse ja elegantsi suurendamiseks võeti kasutusele valikuline aheldamine. Seda tuleks kasutada ettevaatlikult, kuna see võib põhjustada vigade vaigistamise. Valikulise aheldamisoperaatori liigne kasutamine võib teie koodis probleeme tekitada.
Järeldus
Valikuline aheldamine on hiljuti lisatud JavaScripti funktsioon, mida saab kasutada sügavates pesastatud JavaScripti objektide atribuutidele ja meetoditele juurde pääsemiseks, ilma et peaksite muretsema nende meetodite ja atribuutide olemasolu käsitsi kontrollimise pärast.