null vs undefined


  • Both are primitives
  • Both are falsy:
    • Boolean(undefined) //-> false
      Boolean(null) //-> false


  • undefined means that a variable has not been declared, or it has been declared but has not yet been assigned a value.
  • null is an assignment value that means “no value”. Javascript itself never sets a value to null
  • Difference in typeof:
    • typeof null; //-> "object"
      typeof undefined; //-> "undefined"
  • undefined is not a valid JSON while null is.


  • Check if a variable is null:
variable === null;
  • Check if a variable is undefined:
typeof variable === 'undefined';
// ⬇️ or this, but will throw ReferenceError if variable wasn't defined
variable === undefined;
  • Comparison (Equality returns true and identity returns false) :
undefined == null; //-> true
undefined === null; //-> false