JavaScript运算符主要分为六种:
算术运算符、递增和递减运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
1、算术运算符(加+、减-、乘*、除/、取余%)
注意:特殊的+号,既可以进行“加法”,也可以进行“连接”。
“+”:如果2个运算符中的一个是字符串,javascript就将另一个隐式转换成字符串,然后将2个运算数连接起来。
“+”:如果一个运算符是对象,javascript就会将对象转换成数字做加法运算或者字符串做连接运算;
1-1>注意取余%:
判断一个数是否能被整除 就用% 看他们的余数是否为0
正负取决于除数:
1-2>浮点数的精度问题:
因为浮点数的最高精度是17位小数,但在进行算术计算时其精确度远远不如整数
所以不要直接判断两个浮点数是否相等。
1-3>优先级问题:
先乘除后加减 有小括号的先算小括号里面的
2.递增和递减运算符(以递增为例)
想要一个变量自己加1 num=num+1比较麻烦,这时可以用递增运算符++num或者num++ 来表示
2-1>前置递增运算符 (++写在变量的前面)
*前置递增运算符 是先加1 再返回值,如下所示:
2-2>后置递增运算符 (++写在变量的后面)
*后置递增运算符 是先返回原值 再加1,如下所示:
age++返回的原值就是age 所以age++等于10 。但注意此时的age已经加一为11了
2-3>前置递增运算符与后置递增运算符 总结:
1.前置递增与后置递增 可简化代码的编写来让变量的值+1 故更加简洁
2.单独使用时 二者运行结果相同
3.与其他代码连用时 执行结果会不同
4.前置递增:先原值运算,后自加(先己后人)
5.后置递增:先自加,后运算(先人后己)
6.开发时,大多使用后置递增/减,并且代码独占一行(num++ num--)
3.比较运算符
比较运算符一般用于条件判断,是两个数据进行比较的运算符。比较运算后,会返回一个布尔值true/false
代码示例:
3-1> 判等号(==) 与 全等号(===) 的区别:
判等号==:只要求值相等。在这前提下要是二者不是同一数据类型,js引擎则会自动进行隐式转换,转化成同一数据类型
全等号===:要求值和数据类型都要一致。
4.逻辑运算符(布尔运算符、短路运算符)
4-1>布尔值参与的逻辑运算
逻辑与&&:两侧都为true结果才是true 只要有一侧为false结果才是false。
逻辑或||:两侧都为flase结果才是false 只要有一侧为true结果才是true。
逻辑非!:也叫取反符,用来取相反的值 例如false的相反值是ture。
4-2>短路运算(逻辑中断) 一般用来连接,比较表达式
(1)当有多个表达式/值时,左边的表达式可以确定结果时,就不在运算右边的表达式的值,就可以根据左边直接给出结果
此时只看左边的0,所以为false
此时只看左边为123,右边num++不看就省略。 故num++为0,因此num为0
(2)如果有空的、否定的(' ' 、null 、undefined 、NaN、 0)则为假,其余是真的
5.赋值运算符
用来把数据赋值给变量的运算符,赋值运算符的结合方向:从右到左
6.三元运算符
5-1>语法:
判断式?值1(判断式为真时所取值):值2(判断式为假所取值)
5-2>执行思路:
如果判断式结果为真 则 返回值1;如果判断式结果为假 则 返回值2;
代码示例:
7.运算符优先级问题
按先后顺序排列 如下:
代码举例:
四个部分值分别是 false || true && true && true
再看优先级 先算&& 再算|| 故结果为true