你真的了解JavaScript的数据类型吗?
JS的数据类型有:
1、数值类型(Number):js中所有数字均用浮点数字表示。
可以表示32位(即4字节)的整数,也可以表示64位(即8字节)的浮点数(小数)。
也可以用二进制、八进制、十进制、十六进制来表示。
2、字符串类型(String):是一组由16位值组成的不可变的有序序列,每个字符通常来自于Unicode字符集。
3、布尔类型(boolean):来表示结果的真或假,肯定或否定。
这个类型只有两个值:
(1)true 表示真(肯定)。eg:var long = true;
(2)false 表示假(否定)。eg:var short = false;
在实际运算中,true可以当成1做运算,false可以当成0做运算。
4、undefined/null:访问的数据不存在。这两个数据类型的区别官方给出的解释:
null是给程序员主动赋空值所用 eg:var n=null;//程序员主动赋空值
undefined是系统给程序被动赋空 eg:var a;console.log(a);//被系统赋值为undefined。
5、symbol
6、bigint
7、引用数据类型。1、Array 2、Date 3、Function .4、Object......
数据类型的检查:typeof检测数据类型的逻辑运算符
typeof(true)//"boolean" typeof(10)//"number" ...
instanceof检测该数据类型是否为某个类的实例
var arr=[1,2,3];
arr instanceof(Array);//"true"
var obj={"name":"zs","age":15};
obj instanceof(Object);//"true"
constructor检测构造函数
arr.constructor===Array//"true"
以上所有的返回结果都是字符串
typeof的局限性:只能检测出具体的基本数据类型,引用数据类型就不能区分的很细,检测普通对象或者数组对象都是object
记住:typeof null 返回值是“object”