基本数据类型:null undefined string number boolean
复杂数据类型:object
typeof 是用来检测给定变量的数据类型,其返回值:"undefined" "number" "string" "boolean" "function" "object"
疑点1:为什么没有null返回?
从逻辑角度来看,null表示一个空指针对象。所以typeof null返回值是"object"
疑点2:为什么多出一个function?
从技术角度来讲,函数在es中是对象,不是一种数据类型。然而,函数也确实有一些特殊的属性,因此通过typeof操作符来区分
函数和其他对象是有必要的。
布尔值:
转换为true的值:true、非空字符串、非零数值、任何对象
转换成false的值:false、“”、0和NAN、null、undefined
疑点3:NAN是什么?
NAN(not a number)非数值,NAN是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。
任何设置NAN的操作都会返回NAN,其次NAN与任何值都不相等包括NAN自己。
isNaN()用于判断参数是否是非数值。
数值转换:
1. Number()、parseInt()、parseFloat()
number函数可用于任何数据类型,parse系列的主要是针对字符串
规则如下:null==》0 undefined==》NAN ""==》NaN
字符串转换:
数值、布尔值、对象和字符串都有 toString()方法,但null和undefined没有。
要对null和undefined使用转字符串就要使用String()方法,分别返回“null”和“undefined”。