一、JavaScript运算符的种类
1、算术运算符:+ 、 - 、* 、 / 、 % 、 -(负号) 、 ++ 、 --
2、等同全同运算符:== 、 != 、 !==、 ===
3、比较运算符:< 、 > 、 <= 、 >=
4、字符串运算符:< 、 > 、 <= 、 >= 、 = 、 +
5、逻辑运算符:&& 、 ||、 !、
6、赋值运算符:=、 +=、 *=、 -=、 /=
二、JavaScript运算符的规则
逗号运算符:返回的是最后一个表达式的值
1、算术运算符规则
- “+”:可以进行“加法”与“拼接”运算;
- “+”:如果一个运算数是对象,JS就会将对象转换成原始值做加法运算或者字符串做连接运算;
- “-”“*”“/”,将它转化成数字执行数学运算。
- “/” 在JS中,由于所有的数都是浮点数,除法的结果都是浮点数,5 / 2 = 2.5 ;除数为0的结果为正负无穷; 0/0为NaN;
- “%”模运算符:取余,返回余数。其他类型转换成数字后计算,转失败计算结果为NaN。
- “-”一元取反:负号
2、等同运算符与全同运算符
(I)“==”“!=”等同运算符与非等同运算符:
- 比较2个运算数,返回一个不布尔值。
- 当且仅当两个变量存放的值相等的时候,他们才相等。
- 比较对象、数组、函数的时候,使用的是引用地址,只有2个变量引用地址指向同一个对象时,他们才是相等的。
- 一个对象、数组、函数 与 一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。例如:[1,2] => '1,2',{} => '[object object]
- null==undefined
- NaN不等于任何数,包括自己
(II)“===”“!==”全同运算符与非全同运算符号:
全同运算符遵循等同运算符的比较规则,但是它不对运算数进行类型转换,当两个运算数的类型不同时,返回false;只有当两个运算数的类型相同的时候,才会返回true。
“!==”非全同运算符与全同运算符比较的结果相反。如果两个运算数的类型或者值不同的时候,返回true。
3、比较运算符
“<”“>”“<=”“>=”
注意规则:比较的运算数可以是任意类型的,但是只能在数字和运算数上执行。不是数字和字符串的运算数将被转换成数字或字符串。
1)如果两个运算数都是数字,或者都可以转换成数字,则按照数字的大小进行比较;
2)如果两个运算数都是字符串,或者都可以转换成字符串,则将按照字母顺序进行比较;
3)如果字符串遇到数字,则将字符串转换成数字进行比较。
4)如果运算数既不能转换成数字,也不能转换成字符串,则返回结果false。
5、逻辑运算符
用于执行布尔运算,
“&&” 逻辑与运算、“||”逻辑或运算符、“!”逻辑非运算符
(I)“&&”,与 即:当且仅当两个布尔值都是true的时候,返回结果true,否则返回false。
“&&”将检测第一个表达式运算数布尔值,
- 如果第一个运算数表达式返回false,则返回false。
- 如果第一个运算数表达式返回true,则返回下一个表达式。
- 否则将继续检测第二个运算数表达式,然后返回该运算数表达式的值;
(II)“||”,或 即:当两个布尔值有一个是true的时候,返回结果true,否则返回false。
“||”将检测第一个表达式运算数布尔值,
- 如果第一个运算数表达式返回true,则返回该运算数表达式的值:true;
- 如果第一个运算数表达式返回false,则返回下一个表达式
- 否则将继续检测第二个运算数表达式,然后返回该运算数表达式的值;
(III)“!”逻辑非是一个一元运算符,放在运算数之前,它的目的是对运算数取反。