JavaScript的数据类型可分为基本数据类型和引用数据类型: 基本数据类型:undefined、null、Boolean、Number、string、symbol 引用数据类型:Object、Function、Array和Date
基本数据类型
1、Undefined
Undefined只有一个字面值:undefined,代表的是一个变量不存在。
? 只声明却未初始化的变量,会出现“undefined”;
? 获取一个不存在的对象属性,返回“undefined”;
? 函数没有明确的返回值,但却调用了返回值,这时会返回“undefined”;
? 函数定义多个形参,但是调用时传参数量少于形参数量,那么没有匹配上的形参就为“undefined”;
2、Null
Null也是只有一个字面值,表示是一个空指针对象,因为是一个对象,所有使用typeof来检测null的数据类型的时候会返回“object”。
? 如果声明变量为了保存后面的某个值的时候,应该在声明该变量的时候赋值为“null”;
? JavaScript在获取DOM元素的时候,如果没有指定元素对象,则会返回“null”;
? 正则在捕获的时候,没有捕获到结果,也会返回null;
undefined和null在转为Boolean值的时候,都是false。
Undefined是派生自Null类型的,所以在非严格相等的情况下,这两者是相等的:
undefined == null ; // true
null是JavaScript的关键字,undefined是JavaScript中的一个全局变量,是挂载window对象上的一个变量。
Boolean
? 字符串""或者’'会转为false;
? 任何非空字符串转为true,包括" ";
? 0和NaN会转为false,除此之外任何的数字都转为true
? Object为null时,会转为false,其余都可以转为true,包含{}
? Undefined类型只有一个undefined值,会转换为false
Number
? true转为1,false转为0
? Null转为0
? undefined转为NaN
? string转为Number类型:
? 如果字符串只包含数字,则会换成十进制数,如果前面含有0,会直接忽略掉;浮点数也一样
? 如果字符串包含有效的十六进制数,会转换为十进制数
? 空字符串会转为0
? 其他字符会转为NaN
? Object转为Number类型,会先调用valueOf方法返回键值对的value值,再次进行转换,如果值是NaN,则调用toString()方法返回值重新进行转换。
转换为Number类型的三个方法:Number()、parseInt()、parseFloat()
1、Number(),将任何类型转换为Number类型,用以上的规则进行转换
2、parseInt(),用来解析一个字符串, 返回指定基数对应的整数值,但是如果该字符串 不能转换为Number类型的,就会返回NaN
3、parseFloat(),解析一个字符串,返回一个浮点数
Number()函数转换的是传入的整个值,并不是像parseInt()函数和parseFloat()函数一样会从首位开始匹配符合条件的值。如果整个值不能被完整转换,则会返回“NaN”。
isNaN()函数在判断是否为NaN时,需要先进行数据类型转换,只有在无法转换为数字时才会返回“true”;· Number.isNaN()函数在判断是否为NaN时,只需要判断传入的值是否为NaN,并不会进行数据类型转换。
应用数据类型
[持续更新中…]
|