JavaScript的基本类型有哪些?引用类型有哪些?null和undefined的区别

272 阅读2分钟

JavaScript的基本类型有哪些?引用类型有哪些?null和undefined的区别

基本数据类型:

5种:NumberStringBooleanNullundefined

引用类型有:

引用类型:Object。里面包含了ArrayfunctionDate。这三种是常规用的

null和undefined的区别:

1、首先看一个判断题:nullundefined是否相等

在JavaScript中,nullundefined 几乎相等

if 语句中 nullundefined 都会转为false两者用相等运算符比较也是相等

console.log(null==undefined);    //true  因为两者都默认转换成了false
console.log(typeof undefined);    //"undefined"  
console.log(typeof null);       //"object"  
console.log(null===undefined);    //false   "==="表示绝对相等,null和undefined类型是不一样的,所以输出“false”

观察可以发现:null和undefined 两者相等,但是当两者做全等比较时,两者又不等。

原因:null:Null类型,代表 “空值” ,代表一个空对象指针,使用typeof运算得到 “object”,所以你可以认为它是一个特殊的对象值。

undefined:Undefined类型,当一个声明了一个变量未初始化时,得到的就是undefined。

实际上,undefined值是派生自null值的,ECMAScript标准规定对二者进行相等性测试要返回true。

nullundefined 基本同义,二者又有什么区别呢?

null表示没有对象,即该处不应该有值

  1. 作为函数的参数,表示该函数的参数不是对象
  2. 作为对象原型链的终点

undefined表示缺少值,即此处应该有值,但没有定义

  1. 定义了形参,没有传实参,显示undefined
  2. 变量被声明了,但没有赋值时,就等于undefined
  3. 对象属性名不存在时,显示undefined
  4. 对象没有赋值的属性,该属性的值为undefined
  5. 函数没有写返回值,即没有写return,拿到的是undefined
  6. 写了return,但没有赋值,拿到的是undefined

null 默认转成 0

undefined 默认转成 NaN

NaN转换成number数据类型