获取表达式的数据类型

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 不能是 nullundefinedString(obj) 这个方法可以把任意类型的对象转换成字符串。

转换成布尔类型

Boolean()可以把任意类型的值转换成布尔类型。

NaN

前面的数字类型转换中有提到,当一个字符串的首字母是非数字或是字符串是空串的时候,强制类型转换会得到 NaNNot a Number 不是一个数字.
注意:NaN 不等于任何值,包括他自己

isNaN 关键字

isNaN常用来检测某个变量是不是数字,如果是则返回 true 不是则返回 false