一、JavaScript运算符的种类

1、算术运算符:+ 、 - 、* 、 / 、 % 、 -(负号) 、 ++ 、 --

2、等同全同运算符:== 、 != 、 !==、 ===

3、比较运算符:< 、 > 、 <= 、 >=

4、字符串运算符:< 、 > 、 <= 、 >= 、 = 、 +

5、逻辑运算符:&& 、 ||、 !、

6、赋值运算符:=、 +=、 *=、 -=、 /=

二、JavaScript运算符的规则

逗号运算符:返回的是最后一个表达式的值

1、算术运算符规则

  1. “+”:可以进行“加法”与“拼接”运算;
  2. “+”:如果一个运算数是对象,JS就会将对象转换成原始值做加法运算或者字符串做连接运算;
  3. “-”“*”“/”,将它转化成数字执行数学运算。
  4. “/” 在JS中,由于所有的数都是浮点数,除法的结果都是浮点数,5 / 2 = 2.5 ;除数为0的结果为正负无穷; 0/0为NaN;
  5. “%”模运算符:取余,返回余数。其他类型转换成数字后计算,转失败计算结果为NaN。
  6. “-”一元取反:负号

2、等同运算符与全同运算符

(I)“==”“!=”等同运算符与非等同运算符:

  1. 比较2个运算数,返回一个不布尔值。
  2. 当且仅当两个变量存放的值相等的时候,他们才相等。
  3. 比较对象、数组、函数的时候,使用的是引用地址,只有2个变量引用地址指向同一个对象时,他们才是相等的。
  4. 一个对象、数组、函数 与 一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。例如:[1,2] => '1,2',{} => '[object object]
  5. null==undefined
  6. NaN不等于任何数,包括自己

(II)“===”“!==”全同运算符与非全同运算符号:

全同运算符遵循等同运算符的比较规则,但是它不对运算数进行类型转换,当两个运算数的类型不同时,返回false;只有当两个运算数的类型相同的时候,才会返回true。

“!==”非全同运算符与全同运算符比较的结果相反。如果两个运算数的类型或者值不同的时候,返回true。

3、比较运算符

“<”“>”“<=”“>=”

注意规则:比较的运算数可以是任意类型的,但是只能在数字和运算数上执行。不是数字和字符串的运算数将被转换成数字或字符串。

1)如果两个运算数都是数字,或者都可以转换成数字,则按照数字的大小进行比较;

2)如果两个运算数都是字符串,或者都可以转换成字符串,则将按照字母顺序进行比较;

3)如果字符串遇到数字,则将字符串转换成数字进行比较。

4)如果运算数既不能转换成数字,也不能转换成字符串,则返回结果false。

5、逻辑运算符

用于执行布尔运算,

“&&” 逻辑与运算、“||”逻辑或运算符、“!”逻辑非运算符

(I)“&&”,与   即:当且仅当两个布尔值都是true的时候,返回结果true,否则返回false。

“&&”将检测第一个表达式运算数布尔值,

  1. 如果第一个运算数表达式返回false,则返回false。
  2. 如果第一个运算数表达式返回true,则返回下一个表达式。
  3. 否则将继续检测第二个运算数表达式,然后返回该运算数表达式的值;

(II)“||”,或  即:当两个布尔值有一个是true的时候,返回结果true,否则返回false。

“||”将检测第一个表达式运算数布尔值,

  1. 如果第一个运算数表达式返回true,则返回该运算数表达式的值:true;   
  2. 如果第一个运算数表达式返回false,则返回下一个表达式
  3. 否则将继续检测第二个运算数表达式,然后返回该运算数表达式的值;

(III)“!”逻辑非是一个一元运算符,放在运算数之前,它的目的是对运算数取反。