We call this operator using? On the object to get the value of some key on it. If the object and its key exist, the value we want to read will be returned, but if the object does not exist, the undefined value will be returned without throwing a reference error, so the code will not be interrupted.
It is fantastic quality improvement, especially for nested data, so you do not have to write additional conditions, see for yourself in the example below.
This is an operator whose calling is similar to the logical operator OR or ||, we call it with? in conditions.
Fulfilling this condition requires passing null or undefined to the left side of it. It’s beneficial in many cases, so we can often get rid of a lot of the code easily while increasing overall readability. It is most useful when you want to use the value 0 in the condition so that it is not the default false.
Availability and implementation
There are several possibilities to use the mentioned functionalities. They are currently being deployed to browsers and are also not natively available for Node.js.
For production use, it’s best to use Babel presets or use Typescript. The differences can be seen in the bundle size, which in the case of Babel is smaller.