undefined与null的区别

这是一个面试被经常问到的题目

  • undefined表示一个变量没有被声明,或者被声明了但没有被赋值
  • null是一个表示“没有值”的值
  • JS将未赋值的变量默认值设为undefined
  • JS从来不会将变量设为null;它是用来让程序员表明某个用var声明的变量时没有值的
  • undefined不是一个有效的JSON,而null是
  • undefined的typeof是undefined
  • null的typeof是object
  • 它们都是基本类型
  • 它们都是false(Boolean(undefined)    // false, Boolean(null) // false)
  • 你可以这样判断一个变量是否是undefined    //typeof variable === “undefined”
  • 你可以这样判断一个变量是否是null    //variable === null
  • 双等号比较时它们相等,但三等号比较时不相等    //null == undefined // true null === undefined // false