This is incredible feedback and so good to learn!
Yeah I've watched some videos on the topic where it's best practice to use undefined over null but I love your explanation!
undefined
null
Thank you!
One caveat about undefined:
const obj = { nil: null, nothing: undefined, }; console.log(obj.nil == undefined); // true (non-strict equality) console.log(obj.nothing === undefined); // true console.log(obj.zilch === undefined); // true console.log(obj.hasOwnProperty('nil')); // true console.log(obj.hasOwnProperty('nothing')); // true console.log(obj.hasOwnProperty('zilch')); // false const array = [null, ,undefined]; console.log(array[0] == undefined); // true (non-strict equality) console.log(array[1] === undefined); // true console.log(array[2] === undefined); // true console.log(array[3] === undefined); // true console.log(array.hasOwnProperty(0)); // true (value `null`) console.log(array.hasOwnProperty(1)); // false (hole, empty) console.log(array.hasOwnProperty(2)); // true (value `undefined`) console.log(array.hasOwnProperty(3)); // false (out of bounds)
An undefined value is inconclusive with regards to the existence of the property/element within an object/array.
Also note that browser developer tools will mark "holes" in arrays with empty.
empty
Chromium:
> console.log([0,,2]); (3) [0, empty, 2]
Firefox:
> console.log([0,,2]); Array(3) [ 0, <1 empty slot>, 2 ]
ECMAScript 6: holes in Arrays
The void operator returns undefined.
let count = 0; const result = void(count += 1); console.log(count); // 1 console.log(result); // undefined
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
This is incredible feedback and so good to learn!
Yeah I've watched some videos on the topic where it's best practice to use
undefinedovernullbut I love your explanation!Thank you!
One caveat about
undefined:An
undefinedvalue is inconclusive with regards to the existence of the property/element within an object/array.Also note that browser developer tools will mark "holes" in arrays with
empty.Chromium:
Firefox:
ECMAScript 6: holes in Arrays
The void operator returns
undefined.