知识总结
一、数据类型的转换
1:为什么要转换?
如果用户给了一个数据或者计算机再或者其他程序给了一个数据不是我们想要的,那么就可以转成我们需要的数据类型在进行运算。
2:数据类型的转换方法:
分为强制转换和隐式转换:
强制转换(显示转换,主动转换):
字符转换数值:
parseInt(要转换的数据或变量)
从左向右依次检测,遇到第一个非数字的字符,停止转换。忽略小数点后面的所有内容,其实就是把小数点识别成了非数字。如果第一位就是非数字,直接NAN。
NAN是not a number的缩写,意思是不是一个数字的数值型数据,非法的数值运算的结果。
parseFloat(要转换的数据或变量)
从左向右依次检测,遇到第一个非数字的字符,停止转换。可以识别小数点,如果第一位就是非数字,直接NAN.
Math.round(要转换的数据或变量)
Math.round不是专门做字符转数值的,是专门用来取整的,取最近的整数(四舍五入),顺带着可以实现转换。
严格转换:只要出现非数字,就是NAN。
Number(要转换的数值或变量)
不是专门做字符转数值的,系统内置的构造函数,只是用来创建数值对象,顺带着可以实现转换。严格转换:只要出现非数字,就是NAN。
数值转字符;
数值变量:.tostring()
直接转换,相当于加了个引号。
数值变量:.tofixed(n)
保留小数点三位数
隐式转换(被动转换):
情况和规则:
1:算术运算
+号两边只要出现字符,结果必然为字符,- * 、/、 %的结果必然为数值。
2:关系运算
<、>、<=、>=、!=、==两边只要出现数值,那么另一边也会转成数值,进行比较。
二、数据的运算
1:算数运算符
+号,当+号两边都是数值型数据的时候,是数学上的运算,当任意一边成了字符,那么会将+两边的数据拼接起来。
“- * / %‘’就是正常的数学运算,就算两边不是数值,也会默认转成数值,进行运算。如果某个数据无法转成数值,会得到NAN。
2: 关系运算符----结果就是布尔值
<、>、<=、>=只要有一边出现数值,都是数值的比较规则,如果都是字符,才是字符的比较规则:逐位比较,得到结果就停止。
!=、"= ="、会发生隐式转换,或者只比较大小,不比较类型。
!= =、===不会发生隐式转换,不仅比较大小,还比较类型。
3:逻辑运算符
||(或):两边只要出现true,结果就是true,两边必须都为false,结果才是false
&&(且):两边只要出现false,结果就是false,两边必须都为true,结果才是true
!(非):取反
4:赋值运算符
= 号:
将等号右侧的数据,存在左侧的变量中,如果左侧原本有值,则会被覆盖。
+=、-=、*=、/=、%=先计算,在赋值。
5:一元运算符
自增:
++:增加1
前后之分:前自增++n:先计算,后使用。
后自增n++:先试用,后计算。
自减:
–:减少1
前后之分:前自减–n;先计算,后使用
后自减n–:先试用,后计算