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