数据类型的转换方法:强制转换(显示转换,主动转换)
字符转数值
parseInt(要转换的数据或变量)
从左向右依次检测,遇到第一个非数字的字符,停止转换
忽略小数点后所有的内容,其实是将小数点识别成了非数字
如果第一位就是非数字,直接NaN
NaN是什么?not a number
不是一个数字的数值型数据
非法的数值运算的结果
非法:不合法,不合规,本来不能转,非要转
parseFloat(要转换的数据或变量)
从左向右依次检测,遇到第一个非数字的字符,停止转换
可以识别小数点
如果第一位就是非数字,直接NaN
NaN是什么?not a number
不是一个数字的数值型数据
非法的数值运算的结果
非法:不合法,不合规,本来不能转,非要转
Math.round(要转换的数据或变量)
Math.round不是专门做字符转数值的
专门做取整的,取最近的整数,顺带着给可以实现转换
严格转换:只要出现非数字,那么就是NaN
Number(要转换的数据或变量)
Number不是专门做字符转数值的
系统内置的构造函数,用来创建数值对象,后话...顺带着给可以实现转换,直接转换
严格转换:只要出现非数字,那么就是NaN
按需选择、当需要转换时,观察当前程序的运行情况,以及要转换数据的实际情况,对应实际规则,选择方法不管选哪个,只要注意规则,都能灵活使用
数值转字符
数值变量.toString()
直接转换,相当于加个引号
数值变量.toFixed(n)
保留n为小数
隐式转换(被动转换,什么都没做,自动就转了)
情况(场景)和规则
算数运算
+号两边只要出现字符,结果必然为字符
-,*,/,%的结果必然是数值
关系运算
>,<,>=,<=,!=,==两边只要出现数值,那么另一边也会转成数值,进行比较
算术运算符:+ 加号,加法
当加号两边都是数值型数据时,是数学的加法运算
任意一边是字符,那么就变成了拼接,拼接就是将两个数据,直接组合起来
-,*,/,%
就是正常的数学运算
就算两边不是数值,也会默认转成数值,进行运算
如果某个数据不能转成数值,会得到NaN
关系运算符的结果是布尔值:>,<,>=,<=
只要有一边出现数值,都是数值的比较规则
如果都是字符,才是字符的比较规则:逐位比较,得到结果,就停止
!=,==
会发生隐式类型转换,或者只比较大小,不比较类型
!==,===
不会发生隐式类型转换,不仅比较大小,还比较类型
逻辑运算符 - 主要操作布尔值
或
||:两边只要出现true,结果就是true,必须都为false,结果才是false
且
&&:两边只要出现false,结果就是false,必须都为true,结果才是true
非
!:取反
赋值运算符
=
将等号右侧的数据,存在左侧的变量中
把右边的内容,放在左边的变量中
如果左侧的变量,原本有值,那么会覆盖
+=,-=,*=,/=,%=
先计算,再赋值(覆盖)
请参考:+ - * / %
一元运算符
自增
++
增加1
前后之分
前自增++n:先计算,后使用
后自增n++:先使用,后计算
自减
--
减少1
前后之分
前自减--n:先计算,后使用
后自减n--:先使用,后计算