3.6 āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ
āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ (?.) āĻšāϞ⧠āĻāĻāĻāĻŋ āĻ āĻĒāĻžāϰā§āĻāϰ āϝāĻž āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻĒā§āϰāĻĒāĻžāϰā§āĻāĻŋ āĻāĻā§āϏā§āϏ āĻŦāĻž āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻāϞ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤ āϝāĻĻāĻŋ āĻāĻ āĻ āĻĒāĻžāϰā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻā§āϏā§āϏ āĻāϰāĻž āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋ undefined āĻŦāĻž null āĻšā§ āϤāĻžāĻšāϞ⧠āĻāĻā§āϏāĻĒā§āϰā§āĻļāύāĻāĻŋ āĻāϰāϰ āĻĨā§āϰ⧠āύāĻž āĻāϰ⧠undefined āϰāĻŋāĻāĻžāϰā§āύ āĻāϰā§āĨ¤
āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ (?.) āĻ āĻĒāĻžāϰā§āĻāϰā§āϰ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻšāϞā§:
Obj.val?.prop; //āĻ
āĻŦāĻā§āĻā§āĻā§āϰ āĻĒā§āϰāĻĒāĻžāϰā§āĻāĻŋ āĻāĻā§āϏā§āϏ
array?.[1]; //āĻ
ā§āϝāĻžāϰā§āϰ āĻāĻāĻā§āĻŽ āĻāĻā§āϏā§āϏ
obj.func?.(args);//āĻĢāĻžāĻāĻļāύ āĻāϞ
āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ (?.) āĻ āĻĒāĻžāϰā§āĻāϰ , (.) āĻā§āĻāύāĻŋāĻ āĻ āĻĒāĻžāϰā§āĻāϰā§āϰ āĻŽāϤāĻ, āĻāĻŋāύā§āϤā§Â (?.) āĻ āĻĒāĻžāϰā§āĻāĻ°Â āύāĻžāϞāĻŋāĻļ (null or undefined) āϰā§āĻĢāĻžāϰā§āύā§āϏā§āϰ āĻāύā§āϝ āĻāϰāϰ āύāĻž āĻĻāĻŋā§ā§ undefined āϰāĻŋāĻāĻžāϰā§āύ āĻāϰā§āĨ¤ āĻĢāĻžāĻāĻļāύ āĻāϞāĻŋāĻ āĻāϰ āϏāĻŽā§ āĻāĻāĻŋ undefined āϰāĻŋāĻāĻžāϰā§āύ āĻāϰ⧠āϝāĻĻāĻŋ āĻĒā§āϰāĻĻāϤā§āϤ āĻĢāĻžāĻāĻļāύ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āύāĻž āĻĨāĻžāĻā§āĨ¤
āĻāϰ āĻĢāϞ⧠āĻ āĻŦāĻā§āĻā§āĻā§āϰ āϰā§āĻĢāĻžāϰā§āύā§āϏ āϝāĻĻāĻŋ āύāĻž āĻĨāĻžāĻāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻĨāĻžāĻā§ āϤāĻžāĻšāϞā§āĻ āύā§āϏā§āĻā§āĻĄ āĻĒā§āϰāĻĒāĻžāϰā§āĻāĻŋāĻāĻā§āϞ⧠āĻāĻā§āϏā§āϏ āĻāϰāĻž āϝāĻžā§ āĻā§āĻŦ āϏāĻšāĻ āĻāĻŦāĻ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§āĨ¤
āĻāĻāύ āϤāĻžāĻšāϞ⧠āĻāĻāĻāĻž āϏāĻšāĻ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ (.) āĻāĻŦāĻ (?.) āĻā§āĻāύāĻŋāĻ āĻ āĻĒāĻžāϰā§āĻāϰā§āϰ āϏā§āĻŦāĻŋāϧāĻž-āĻ āϏā§āĻŦāĻŋāϧāĻžāĻā§āϞ⧠āĻĻā§āĻā§ āύā§āĻ:
const person = {
name: 'Kalam',
age: 40,
hair: {
color: 'black',
style: 'straight',
},
};
const hairColor = person.hair && person.hair.color;
person.hair.color-āĻāϰ āĻŽāĻžāύ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻžāϰ āĻāĻā§ person.hair-āĻāϰ āĻŽāĻžāύ āύāύ-āύāĻžāϞ(āĻāĻŦāĻ āύāύ-undefined) āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ person.hair āĻĒāϰā§āĻā§āώāĻž āύāĻž āĻāϰ⧠āϏāϰāĻžāϏāϰāĻŋ person.hair.color āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϞ⧠āĻāĻāĻŋ āϝ⧠āĻāϰāϰ āĻāĻāĻŦā§ āϤāĻž āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰā§āĨ¤
āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ āĻ āĻĒāĻžāϰā§āĻāϰ (?.) āĻĻāĻŋāϝāĻŧā§ person.hair.color āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻžāϰ āĻāĻā§ person.hair āĻāϰ āĻŽāĻžāύ āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻšāĻŦā§ āύāĻž:
const hairColor = person.hair?.color;
āĻļā§āϧ⧠(.) āĻ āĻĒāĻžāϰā§āĻāϰā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠(?.)āĻ āĻĒāĻžāϰā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞā§,āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ person.hair.color āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻžāϰ āĻāĻā§ person.hair-āĻāϰ āĻā§āώā§āϤā§āϰ⧠null āĻ āĻĨāĻŦāĻž undefined āύāϝāĻŧ āϤāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻšāϤ⧠āĻĒāϰā§āĻā§āώāĻāĻžāĻŦā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤ āϝāĻĻāĻŋ person.hair-āĻāϰ āĻŽāĻžāύ null āĻ āĻĨāĻŦāĻž undefined āĻšāϝāĻŧ, āĻāĻā§āϏāĻĒā§āϰā§āĻļāύāĻāĻŋ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ undefined āϰāĻŋāĻāĻžāϰā§āύ āĻāϰā§āĨ¤
āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ āĻĻāĻŋā§ā§ āĻĢāĻžāĻāĻļāύ āĻāϞ
āĻā§āύ⧠āĻĢāĻžāĻāĻļāύāĻā§ āĻāϞ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§, āϝā§āĻāĻžāύ⧠āĻĢāĻžāĻāĻļāύāĻāĻŋ āύāĻžāĻ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻĢāĻžāĻāĻļāύ āĻāϞā§āϰ āϏāĻžāĻĨā§ āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āϝāĻĻāĻŋ āĻĢāĻžāĻāĻļāύāĻāĻŋ āύāĻž āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ āϤāĻžāĻšāϞ⧠āĻāϰāϰ āĻĨā§āϰ⧠āĻāϰāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻā§āϏāĻĒā§āϰā§āĻļāύāĻāĻŋ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ undefined āϰāĻŋāĻāĻžāϰā§āύ āĻāϰā§āĨ¤
const result = customMethod?.();
āĻāĻā§āϏāĻĒā§āϰā§āĻļāύ āϞāĻŋāĻāϤ⧠āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ
āĻ āĻĒāĻļāύāĻžāϞ āĻā§āĻāύāĻŋāĻ (?.) āĻ āĻĒāĻžāϰā§āĻāϰ āĻŦā§āϰā§āϝāĻžāĻā§āĻ āύā§āĻā§āĻļāύā§āϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ:
const nestedProp = obj?.['prop' + 'Name'];
āĻāĻāĻŋ āĻ ā§āϝāĻžāϰā§āϰ āĻāύā§āϝā§āĻ āĻŦāĻŋāĻļā§āώāĻāĻžāĻŦā§ āĻāĻžāϰā§āϝāĻāϰ, āϝā§āĻšā§āϤ⧠āĻ ā§āϝāĻžāϰā§āϰ āĻāύāĻĄā§āĻā§āϏāĻā§āϞ⧠āĻŦā§āϰā§āϝāĻžāĻā§āĻ āĻĻā§āĻŦāĻžāϰāĻž āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āĻšā§āĨ¤
function printContent(arr) {
console.log(arr?.[42]);
}
printContent([0, 1, 2, 3, 4, 5]); // Output: undefined
printContent(); // Output: Error