JS中的运算符

1、算术运算(单目运算符)
+、 -、 *、 /、 % 取余、++ 自增、-- 自减
加号有两种作用:链接字符串和加法作用,当+两边全为数字时,进行加法运算;当+两边有任意一边为字符串时,起链接字符串的作用,链接之后的结果为字符串;
除加号外,其余符号运算时,会先尝试将左右变量用Number函数转为数字;
除号:结果会保留小数点;
++:自增运算符,将变量在原有基础上+1
--:自减运算符,将变量在原有基础上-1
重点!!【a++和++a的异同】
①相同点:不论a++和++a,运算完以后,a的值均会+1;
②不同点:a++:先用a的值去运算,再把a+1;
++a:先把a+1,再把a+1以后的值取运算;
eg:var a=3,b,c;
b = a++ +2;//先用a运算,b=3+2 再把a+1 a=4
c = ++a +2;//先把a+1,a=5,再用a+1以后的值去运算,c=5+2
++在前 先加一 再计算 --在前 先减一 再计算
++在后 先运算 再加一 --在前 先运算 再减一

2、赋值运算
=:赋值,把右边的赋值给左边 += -= *= /= %=
+=:a+=b;相当于a=a+b;但是,前者的运算效率要比后者快,所以推荐使用+=的写法;

3、关系运算
==等于、 ===全等、!=不等、!==不全等、>、<、>=、<=
关系运算符,运算之后的结果,只能是Boolean类型;
判断一个数字处于某个空间,必须用&&链接;
eg:a<10 && a>0 错误写法:10>a>0
===:严格等于,要求不但要类型相同,值也必须相同;类型不同,结果直接为flase;类型相同,再进行下一步计算;
==:等于。类型相同:与===效果一样。类型不同时,会先尝试用Number函数将两边转为数字,然后再进行判断。
但是,有个别 特例:eg:Null==flase(错误) Null==Undefined(正确)

4、条件运算符(多目运算)
a>b?true:false
有两个重要符号: ?和:
当?前面部分,运算结果为true时,执行:前面的代码
当?前面部分,运算结果为flase时,执行:后面的代码
冒号两边可以为数值,则整个式子可用于赋值。var a = 1<2?1:2;
冒号两边可以为代码块,将直接执行代码。1<2?alert(1):alert(2);
多目运算符可以多层嵌套。var a =1<2?alert(1):(1>0?4:5);
5、位运算符、 逻辑运算符
&&与、||或、!非
&&:两边都成立,结果为true;
||:两边有任意一边成立,结果为true;
6、运算符的优先级:
() //小括号最高
! ++ -- //单目运算符
* / %
+ -
> < >= <=
== !=
&& //与或同时存在时,&&比||高
||
= += -= *= /=

原文地址:https://www.cnblogs.com/yingyingh5/p/7657554.html