Many entities in a JS runtime environment can turn out to be
undefined. According to ES specs, “Any variable that has not been assigned a value has the value
undefined.” It strikes me as conceptually inconsistent to tack onto the above that any variable that has been assigned a value can also have the value
undefined to signify the absence of any value.
By contrast, according to MDN, “The value
null represents the intentional [i.e., developer-generated] absence of any object value.”
Conclusion: best practice/convention: use