js基本数据类型
js里面基本数据类型分为原始值和引用值两大类。
其中原始值包括数字number,字符串string,布尔值boolean,undefined,null五种。
引用值包括数组array,对象object,函数function三种。
typeof判断数据类型
当传入一个变量时,可以用typeof来判断基本的数据类型。
根据传入的数据类型进行划分,typeof的返回值包括”number” ,”string” ,”boolean” ,”undefined” , “object” , “function”六种
其调用形式如下:
(1)typeof num
(2)typeof(num)
其中,typeof后面跟的为需要判断数据类型的变量。传入的变量可以直接跟在typeof后面以空格分隔开,也可以直接写在括号里
看如下例子:1
2
3typeof 123; //"number"
typeof NaN; //"number"
typeof Infinity; //"number"
但凡是数学计算能产生的结果都是数字类型,数字类型的返回值为”number”
1 | var str = '123abc'; |
输入一个字符串,字符串可以通过运算符改变其类型,typeof会根据类型返回特定的值
1 | typeof a; //"undefined" |
在js中,一个变量未经声明就使用,只有在一种情况下不会报错,那就是将变量放在typeof里面查看类型
综上总结,可以将基本数据类型和typeof的返回值做如下对应关系:
typeof的返回值: “number” ,”string” ,”boolean” ,”undefined” , “function” ,”object”
返回值为”number”包括:数字类型(number)
返回值为”string”包括:字符串类型(string)
返回值为”boolean”包括:布尔值(boolean)
返回值为”undefined”包括:undefined(即值未定义)
返回值为”function”包括:函数function
比较特殊的是,返回值为”object”包括:null,数组array,对象object
所以当需要判断具体的”object”类型时,需要对null,array,object进行判断
注意点
typeof的返回值均为字符串,即number类型的字符串,string类型的字符串,boolean类型的字符串,undefined类型的字符串,function类型的字符串,object类型的字符串
即typeof(typeof “number”) => “string”
特殊情况
考虑以下情况,当基本数据类型的首字母大写时,相应的typeof是否也会发生改变呢?1
2
3
4
5
6
7
8typeof Number //"string"
typeof String //"string"
typeof Boolean //"string"
typeof Undefined //"undefined"
typeof Null //"undefined"
typeof Array //"string"
typeof Object //"string"
typeof Function //"string"
总结起来就是
返回值为”string”包括:Number / String / Boolean / Array / Object / Function
返回值为”undefined”包括:Undefined / Null