1. 为什么要转换?
- 如果,用户给了一个数据,或者计算机给了一个数据,或者其他程序给了一个数据,不是咱们想要的数据类型
- 需要转成当前程序所需的数据类型,再进行运算
- 转换方法有哪些
2. 数据类型的转换方法
- 强制转换(显示转换,主动转换)
- 字符转数值
- `parseInt(要转换的数据或变量)`
- 从左向右依次检测,遇到第一个非数字的字符,停止转换
- 忽略小数点后所有的内容,其实是将小数点识别成了非数字
- 如果第一位就是非数字,直接NaN
- NaN是什么?not a number
- 不是一个数字的数值型数据
- 非法的数值运算的结果
- 非法:不合法,不合规,本来不能转,非要转
- `parseFloat(要转换的数据或变量)`
- 从左向右依次检测,遇到第一个非数字的字符,停止转换
- 可以识别小数点
- 如果第一位就是非数字,直接NaN
- NaN是什么?not a number
- 不是一个数字的数值型数据
- 非法的数值运算的结果
- 非法:不合法,不合规,本来不能转,非要转
- `Math.round(要转换的数据或变量)`
- Math.round不是专门做字符转数值的
- 专门做取整的,取最近的整数,顺带着给可以实现转换
- 严格转换:只要出现非数字,那么就是NaN
- `Number(要转换的数据或变量)`
- Number不是专门做字符转数值的
- 系统内置的构造函数,用来创建数值对象,后话...顺带着给可以实现转换,直接转换
- 严格转换:只要出现非数字,那么就是NaN
- 如何选择?
- 按需选择
- 当需要转换时,观察当前程序的运行情况,以及要转换数据的实际情况,对应实际规则,选择方法
- 不管选哪个,只要注意规则,都能灵活使用
- 数值转字符
- `数值变量.toString()`
- 直接转换,相当于加个引号
- `数值变量.toFixed(n)`
- 保留n为小数
- 其他类型转换 - 后话
- 其他转布尔
- 布尔转数值
- 其他转字符
- 隐式转换(被动转换,什么都没做,自动就转了)
- 情况(场景)和规则
1. 算数运算
- `+`号两边只要出现字符,结果必然为字符
- `-`,`*`,`/`,`%`的结果必然是数值
2. 关系运算
- `>`,`<`,`>=`,`<=`,`!=`,`==`两边只要出现数值,那么另一边也会转成数值,进行比较