JS 的数据类型检测和转换

85 阅读2分钟

JS的数据类型检测

通过一个方法去检测数据类型的值是什么

语法:typeof(要检测的数据类型的值)

typeof 的问题,不能正确检测出null这个类型的实际类型,检测null的时候打印结果为object

null代表的含义是空,也就是空对象,所以typeof会把他当成一个对象去输出

JS的数据类型转换

1.转换为数字类型

1)Number(数据)

可以用于任何数据类型,将其转换为数字类型

 *字符串转数字:如果转换的字符串是空字符串或者空白字符串,那么直接转换为数字0
 
 *其他类型的字符串(不是空字符串,不是空白字符串,不是纯数字字符串):会转换为NaN
 
 *NaN:表示的是一个number的数字,但是没有办法通过常规的数字表明它,所以只能使用NaN来代替(坏掉的数字)
 
 *布尔值转数字:true转换为1   false转换为0
 
 *+undefined转数字:会直接转换为NaN
 
 *null转数字:会直接转换为0
 

2)parseInt(数据)

*会将数据转换为number类型,并且值是正数(直接忽略掉小数点以后的值,并不是四舍五入)

*在转换的时候,如果数据是纯数字字符串或者是数字开头的字符串,那么会转换为数字,否则就是转为NaN

3)parseFloat(数据)

*转换结果与parseInt类似,但是在转换小数的时候会保留小数点后面的数字

4)拓展:在实际开发中,常用数据-0(暂时先不考虑原理)

2.转换为字符串类型

1)变量.toString()方法

注意:S是大写的

注意:undefined类型和null不能使用toString方法(因为JS没有给我们提供,或者说JS不允许)

2)String(变量)方法

注意:S也是大写

什么类型都可以转换为字符串类型,包括undefinednull类型

3)拓展:开发时常用的一个方法

 变量+'' (暂时不考虑原理)
 
 转换结果与String类似,写法上更简单一些,所以推荐使用    
 

3.转换为布尔类型

Boolean(变量)

将其他数据类型,转换为布尔值(也就是转换为true或者false

数字转换为布尔值,只有0会转换为false,其他的数字都会转换为true(非0即为真)

字符串转换为布尔值的时候,只有空字符串会转换为false,其他的字符串都会转换为true

undefined和null转换为布尔值的时候,都会转换为false(重点,以后会常用)