获取表达式的数据类型
JS 到目前位置,没有直接获取表达式数据类型的内置方法,但是通过typeof
这个关键字,可以了解表达式的数据类型,它的返回值式字符串形式的变量类型
/**
* 基本语法:
* typeof 表达式
* typeof (表达式)
*/
// 符合数据类型的情况
console.log(typeof "abc") // 打印 String
console.log(typeof 200) // 打印 Number
console.log(typeof true) // 打印 boolean
conosle.log(typeof {}) // 打印 object
数据类型的转换
JS程序在运行时常常会遇到,当前表达式返回值的数据类型不是所需的数据类型的情况,(猜数游戏时,玩家输入的返回值时字符串),这里就需要用到变量上数据类型的转换。
数据类型的转换又分为隐式数据类型转换 和 显式数据类型转换
隐式数据类型转换
自动按照规则进行转换,在JS程序运行的时候,如果被运算的变量不是一种类型,则会按照一定的规则进行转换。
/**
* 1、任何类型,做字符串拼接的运算结果都是字符串,
* 所以,如果在变量后后 加 空字符串就可转化为字符串形式变量
* 2、任何类型,做数学运算的结果都是数字,
* 所以,如果在变量后加 0 或 乘 1 就可转化为数字Number
* 3、true 在数学运算的时候可以看作 1 false 可以看作 0
* 4、[] 和 null 在数学运算看作 0
* 5、null 和 undefined 时相等的 也就是 null == undefined
* 6、[数字] 和 [字符串]在运算时也可以看作把这个数字或字符串拿出来
*/
显式数据类型转换( 强制类型转换 )
转换为数字类型
parseInt() 转换
可以以截取的方式将一个字符串转换为整数(向下取整)
/**
* 语法:
* parseInt(待转对象, <进制>);
* 这里进制时可选的,分别2 - 36 都可以, 默认时十进制
*/
parseInt("10") // 结果时10
parseInt("20px") // 结果是 20,当截取到首个字符的时候停止
parseInt("10.4") // 结果是 10 当截取到小数点也会停止,(向下取整,舍弃小数)
// 特殊的
parseInt("a10") // 结果 NaN 一开始就是字母,就不能转换成数字
parseInt("") // 结果是 NaN 空的字符串也不能转换
parseInt(" ") // 结果 NaN 一串空格也不行
parseFloat()
使用截取的形式把一个字符串转换成小数( 或整数 )
语法:parseFloat(待转对象)
其转化规则可以参考 parseInt()
转换成字符串
转换成字符串的方法相比转换成数字就简单不少,常用的有两个方法:obj.toString()
这里的obj 不能是 null
或 undefined
String(obj)
这个方法可以把任意类型的对象转换成字符串。
转换成布尔类型
Boolean()
可以把任意类型的值转换成布尔类型。
NaN
前面的数字类型转换中有提到,当一个字符串的首字母是非数字或是字符串是空串的时候,强制类型转换会得到 NaN
即 Not a Number 不是一个数字.
注意:NaN 不等于任何值,包括他自己
isNaN 关键字
isNaN常用来检测某个变量是不是数字,如果是则返回 true
不是则返回 false