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也是大写
什么类型都可以转换为字符串类型,包括undefined和null类型
3)拓展:开发时常用的一个方法
变量+'' (暂时不考虑原理)
转换结果与String类似,写法上更简单一些,所以推荐使用
3.转换为布尔类型
Boolean(变量)
将其他数据类型,转换为布尔值(也就是转换为true或者false)
数字转换为布尔值,只有0会转换为false,其他的数字都会转换为true(非0即为真)
字符串转换为布尔值的时候,只有空字符串会转换为false,其他的字符串都会转换为true
undefined和null转换为布尔值的时候,都会转换为false(重点,以后会常用)