I've seem different approaches for (strict equality) checking for
if (something === undefined)
if (typeof something === 'undefined')
if (something === void 0)
In a happy scenario their behavior is the same. In other words, they all work.
If yes, why people choose other approaches rather than the first? Is it some sort of legacy or misconception? Because the first one it's obviously the most clear in both readability and intention demonstration.
if (something === undefined) is the standard normal way
typeof something === 'undefined' on a declared variable is mostly an overdefensive solution dating from the time where you could change
window.undefined. If you don't know if your variable is declared, it has the advantage of not raising an error but I don't think a legit code should support the case of a variable whose declarative state is unknown.
void 0 (or void anything) is a normalized way to get
undefined so it's equivalent to the first one but useless.
undefined. Older version of the JS standard let you change the value of
undefinedas it's just a variable.
undefined, it's safer.
An extra one:
if (x == null). Tests for
undefined == nullbut remember,
undefined !== null
'undefined' and a value
undefined. The value
undefined is of type
©2020 All rights reserved.