JavaScript的基本类型有哪些?引用类型有哪些?null和undefined的区别
基本数据类型:
5种:Number、String、Boolean、Null、undefined
引用类型有:
引用类型:Object。里面包含了Array、function、Date。这三种是常规用的
null和undefined的区别:
1、首先看一个判断题:null和undefined是否相等
在JavaScript中,null 和 undefined 几乎相等
在 if 语句中 null 和 undefined 都会转为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。
null 和 undefined 基本同义,二者又有什么区别呢?
null表示没有对象,即该处不应该有值
- 作为函数的参数,表示该函数的参数不是对象
- 作为对象原型链的终点
undefined表示缺少值,即此处应该有值,但没有定义
- 定义了形参,没有传实参,显示undefined
- 变量被声明了,但没有赋值时,就等于undefined
- 对象属性名不存在时,显示undefined
- 对象没有赋值的属性,该属性的值为undefined
- 函数没有写返回值,即没有写return,拿到的是undefined
- 写了return,但没有赋值,拿到的是undefined
null 默认转成 0
undefined 默认转成 NaN
NaN转换成number数据类型