Why does isNil
method in Lodash use null
instead of undefined
?
function isNil(value) {
return value == null;
}
Why does isNil
method in Lodash use null
instead of undefined
?
function isNil(value) {
return value == null;
}
It makes no difference either way in terms of the logic using null
or undefined
as null == undefined == true
, but using null
instead of undefined
would make the file size smaller by 5 bytes.
It's simply done to save a few bytes making the file smaller and faster to download from the server.
To understand this a bit better, it's important to note that lodash
is using ==
here instead of ===
.
Take the following example:
console.log(null == undefined); // true
console.log(null === undefined); // false
By using ==
(double equals), lodash is utilizing type coercion where null
and undefined
will be coerced to falsy values. As a result, null == undefined
is true
.
However, if using ===
(triple equals), no coercion is enforced, which means the types must be identical, and as we know null
is not identical to undefined
. As a result, null === undefined
is false
.