导图社区 JS操作符
JS中存在的各种运算和操作,例如针对变量的转换以及三目运算符等。
编辑于2021-03-24 21:03:22JS操作符
其他基本类型转换为Number类型
null转化成Number
undefined转化成Number
boolean转化成Number
String转化成Number
Number()
如果字符串中存在除了数字和小数点以外的其他字符,则转换失败,值为NaN
加减号在头表示正负号
开头有空白字符可以过滤
parseInt()
将接收到的数据(一般都是字符串)转化成整数
转换规则:从第一个非空白字符(空格、换行、tab)开始转换,直到遇到一个非数字字符为止。
如果转化失败,结果为NaN
从第一个非空字符开始,如果第一个字符不是数字或者正负号,parseInt()就会返回NaN,因此,parseInt()转换空字符结果为NaN,但是Number返回0
parseFloat()
将接收到的数据(一般都是字符串)转成浮点数
遇到的第一个小数点有效,第二个小数点就无效了
其他基本类型转为String类型
null转化成String
undefined转化成String
boolean转化成String
number转化成String
其他基本类型转换为Boolean类型
绝大多数转成布尔值,结果都为true
以下这六种情况转为boolean结果为false
prompt(" ")
prompt()接收外部的数据,默认是字符串类型
有时需要将其转化成整数
var age = parseInt(prompt("请输入年龄"));
算数运算符和算数运算表达式
表达式
由变量、常量和运算符组成的式子
如何阅读表达式
1、功能:进行相关的运算
2、值:相关运算之后得到的值
算数运算符
+ - * 、 %(取余数)
* 乘
如果操作数都是数值,则执行常规的乘法运算,如果结果超过JS数值范围,则返回Infinity或者-Infinity
NaN参与乘法运算,则结果返回NaN
Infinity*0,返回NaN
Infinity与非0操作数运算时,结果返回Infinity或者-Infinity。取决于有符号操作数的符号。
Infinity * Infinity,结果是Infinity
如果有一个操作数不是数值,那么在参与运算前会先对操作数执行Number()将其转化为数值,再应用上面的规则
/ 除
如果操作数都是数值,则执行常规的除法运算,如果结果超过JS数值范围,则返回Infinity或者-Infinity
NaN参与除法运算,则结果返回NaN
Infinity / Infinity,结果为NaN
0 / 0, 结果为NaN
如果是非0的有限数被0除,则结果是Infinity或者-Infinity,取决于有符号操作数的符号
如果是Infinity被任何非0 整数值除,则结果是Infinity或者-Infinity
如果有一个操作数不是数值,那么在参与运算前会先对操作数执行Number()将其转化为数值,再应用上面的规则
% 取余
如果操作数都是数值,则执行常规的取余运算
如果被除数是无穷大值,而除数是有限大值,结果为NaN
如果被除数是有限大值,除数是0,结果为NaN
被除数是0,结果为0
如果有一个操作数不是数值,那么在参与运算前会先对操作数执行Number()将其转化为数值,再应用上面的规则
+ 加
如果操作数都是数值,则执行常规的加法运算
如果有一个操作数是NaN,则返回NaN
Infinity + Infinity = Infinity
(-Infinity) + (-Infinity) = -Infinity
Infinity + (-Infinity) = NaN
两个都是字符串,则拼接字符串
一个数值,一个字符串,则现将数值转为String类型,然后拼接字符串
- 减
如果操作数都是数值,则执行常规的减法运算
如果有一个操作数是NaN,则返回NaN
Infinity - Infinity = NaN
(-Infinity) - (-Infinity) = NaN
Infinity - (-Infinity) = Infinity
-Infinity - Infinity = -Infinity
算术运算表达式
变量1 算数运算符 变量2
功能
进行相关的数学运算,不能改变变量的值
值
相关数学运算之后的结果
自增自减运算符
自增
自增运算符
++
自增运算表达式
变量++
后++,先取值再加1,表达式的值是变量+1之前的值
++变量
先++,先加1再取值,表达式的值是变量+1之后的值
功能
两种都是实现变量的值自动加1
自减
自减运算符
--
自减运算表达式
变量--
后--,先取值再减1,表达式的值是变量-1之前的值
--变量
先--,先减1再取值,表达式的值是变量-1之后的值
功能
两种都是实现变量的值自动减1
赋值运算符和赋值运算表达式
赋值运算符
=
赋值运算表达式
变量 = 表达式
功能
实现对变量的赋值操作
值
赋值运算结束之后,变量的值
复合运算符
+=
a += 1 === a = a+1
-=
a -= 1 === a = a-1
*=
a *= 1 === a = a*1
/=
a /= 1 === a = a/1
%=
a %= 1 === a = a%1
关系运算符和关系运算表达式
关系运算符
> 大于
>= 大于等于
== 等于
只比较数值,不比较类型。比较之前会进行类型统一
=== 绝对等于
数值和类型都要相等才可
1、都是数值,正常比较 2、都是字符串,比较对应的字符编码值 3、一个是数值,则将另一个操作数转化为一个数值,然后进行数值比较 4、如果一个是对象,则调用这个对象的valueOf()方法,再按照上面规则比较;如果对象没有valueOf()方法,那么调用toString()方法,再按规则进行比较 5、如果一个是布尔值,那么先将其转化为数值,再进行比较
关系运算表达式
表达式1 关系运算符 表达式2
功能
计算表达式1和表达式2的关系值
值
如果关系成立,值为真,否则值为假
注意: 关系运算符不能连用。例如 1 <= num <= 5 会存在语法错误
逻辑运算符
逻辑与(&&)
有一个条件为假,则结果为假
逻辑或(||)
有一个条件为真,则结果为真
逻辑非(!)
取非运算
三目运算和三目运算符
三目运算符
?:
三目运算表达式
表达式 ? 表达式1 : 表达式2
功能
计算"表达式"的值,如果"表达式"的值为真,则计算表达式1的值,否则计算表达式2的值
值
如果"表达式"的值为真,则取表达式1的计算值作为结果,否则取表达式2的计算值作为结果