The Optional Chaining Operator (?.)
The optional chaining operator (?.) allows safe accessing of nested properties and methods in JavaScript objects, preventing errors when properties are undefined or null.
Syntax:
let Value = user.dog && user.dog.name;
Example: In this example we are using the above-explained method.
Javascript
const user = { id: { name: "Rohit" } }; console.log(user.cat?.name); console.log(user.id?.name); console.log(user.cat.name); |
Output:
"Rohit"
"error"
"TypeError: Cannot read properties of undefined (reading 'name')
JS 2020 – ECMAScript 2020
JavaScript ECMAScript 2020 (ES11) introduced new features like optional chaining, nullish coalescing, dynamic import(), BigInt, and Promise.allSettled(), etc. enhancing language capabilities for modern web development needs.
JavaScript 2020 (ES11) or ECMAScript 2020 new features are:
BigInt |
type for arbitrary precision integers beyond the Number’s limit. |
String matchAll() |
returns an iterator for all regex matches in the string. |
The Nullish Coalescing Operator (??) |
returning right operand if the left is nullish, else left. |
The Optional Chaining Operator (?.) |
accessing nested properties if they exist, otherwise returns undefined. |
Logical AND Assignment Operator (&&=) |
assigns the right operand to the left if the left is truthy. |
Logical OR Assignment (||=) |
assigns the right operand if the left is falsy, else left. |
Nullish Coalescing Assignment (??=) |
the operator assigns the right operand if the left is nullish, else left. |
Promise allSettled() |
returning an array of promise results with status and value. |
Dynamic Import |
enables asynchronous import of modules at runtime. |