数据类型总结

typeof 返回的是字符串,有六种可能:
"number"、"string"、"boolean"、"object"、"function"、"undefined" 以及'symbol'
null,array,object返回的都是‘object’

判断数组
Array.isArray([])//true
instanceof方法
instanceof 用于判断一个变量是否某个对象的实例,左边操作数是一个对象,右边操作数是一个函数对象或者函数构造器。
原理是通过判断左操作数的对象的原型链上是否具有右操作数的构造函数的prototype属性。
var arr = [1,2,3,1];
alert(arr instanceof Array); // true 
null,undefined的区别?
null表示一个对象被定义了,但存放了空指针,转换为数值时为0。
undefined表示声明的变量未初始化,转换为数值时为NAN。
typeof(null) -- object;
typeof(undefined) -- undefined

undefined 的字面意思就是未定义的值

null 的字面意思是 空值  如果需要释放某个对象,就将变量设置为null,即表示该对象已经被清空,目前无效状态。试想一下,如果此处把 null 换成 undefined 会不会感到别扭

typeof null == 'object' // true

typeof null === 'object' // true

null 有属于自己的类型 Null,而不属于Object类型,typeof 之所以会判定为 Object 类型,是因为JavaScript 数据类型在底层都是以二进制的形式表示的,二进制的前三位为 0 会被 typeof 判断为对象类型,而 null 的二进制位恰好都是 0 ,因此,null 被误判断为 Object 类型。

 

undefined == null // true

null 和  undefined 的行为很相似,并且都表示 一个无效的值,那么它们所表示的内容也具有相似性

undefined === null //false

因为全等操作 === 在比较相等性的时候,不会主动转换分项的数据类型,而两者又不属于同一种类型

 

Number(null) // 0

Number(undefined)// NAN

在比较相等性之前,null 没有被转换为其他类型

null == 0 ; //false
posted @ 2019-05-16 16:09  别闹啊  阅读(280)  评论(0编辑  收藏  举报
Live2D