The optional chaining ‘?.’ is an error-proof way to access nested object properties, even if an intermediate property doesn’t exist. It was recently introduced by ECMA International, Technical Committee 39 – ECMAScript which was authored by Claude Pache, Gabriel Isenberg, Daniel Rosenwasser, Dustin Savery. It works similar to Chaining ‘.’ except that it does not report the error, instead it returns a value which is undefined. It also works with function call when we try to make a call to a method which may not exist.
When we want to check a value of the property which is deep inside a tree-like structure, we often have to perform check whether intermediate nodes exist.
let Value = user.dog && user.dog.name;
The Optional Chaining Operator allows a developer to handle many of those cases without repeating themselves and/or assigning intermediate results in temporary variables:
let Value = user.dog?.name;
obj?.prop obj?.[expr] arr?.[index] func?.(args)
Note: If this code gives any error try to run it on online JavScript editor.
Example: Optional Chaining with Object
Example: Optional Chaining with Function Call
- CSS | optional Selector
- How to create optional arguments in PHP ?
- How to create optional arguments for a SASS mixin?
- jQuery | chaining()
- What is Chaining in Node.js ?
- Node.js | Promise Chaining
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : abhishekkharmale