JavaScript中运算符的运算规则

一、算术运算符

+号运算符:
①+号两侧都是数字类型 ,结果:求两个数字的和。
例:
+号运算符两侧都是数字类型
②+号有一侧是字符串类型或者是引用值时 其作用都是字符串拼接。

例:+号运算符有一侧是字符串或者引用值时的结果
-号运算符:
①-号两侧都是数字类型 ,结果:求两个数字的差;
-号运算符
*号运算符:

*号两侧都是数字类型,结果:求两个数字的积;

/号运算符:
/号两侧都是数字类型,结果:求两个数字的商;
/号运算符
%号运算符:
%号两侧都是数字类型,结果:求两个数字的余数(模);
JavaScript中运算符的运算规则_第1张图片
结论:除加号之外的运算符,其他运算符结果只做对应的数学运算;

NaN和任何数任何进行运算都是等于NaN

二、一元运算符

一元运算符: +, - 该运算符只操作一个数据。
例如:

  1. +2:正号,对一个数字取正,如果操作的是非数字类型 则会隐式转换成数字类型。
  2. -2:负号,对一个数字取负, 如果操作的是非数字类型 则会隐式转换成数字类型。

一元运算符的优先级是高于算术运算符的。

三、自增运算符

①a++( 后加加)结果:
1.让变量a在自动增加1
2. a++的结果是没有改变之前的变量a

例:
a++

② ++a (前加加) 结果:
1.让变量a在自动增加1
2. ++a的结果是改变之后的变量a
例:
JavaScript中运算符的运算规则_第2张图片

四、自减运算符

①a-- (后减减) 结果:
1.让变量a在自动减少1
2. a–的结果是没有改变之前的变量a
例:
JavaScript中运算符的运算规则_第3张图片

② --a (前减减)结果:
1.让变量a在自动减少1
2. --a的结果是改变之后的变量a
例:
JavaScript中运算符的运算规则_第4张图片

五、比较运算符

① == ,判断两个数据是否相等 ,相等则结果是true ,不相等则是false。
运算过程:

  1. == 两侧都是原始值(非null undefined)时,会把==两侧的数据转换成数字进行比较。
  2. null和undefined在==判断时,结果总是false。
  3. == 两侧有一个是引用值,一个是字符串,会把==两侧的数据转换成字符串进行比较。
    ==两侧有一个是引用值,一个是非字符串,会把 ==两侧的值转换成数字进行比较。
  4. ==两侧都是引用值时 直接返回false

②!= ,判断两个数据是否不相等,不相等则结果是true,反之结果是false。

③=== , 判断两个数据是否全等,全等则结果是true,反之结果是false。

===

④!== ,判断两个数据是否不全等,不全等则结果是true,反之是false。

!==
⑤>、<, 比较两个数据的大小:
规则:
字符串和字符串比较时,会按照字符串对应的unicode编码值比较 (田忌赛马)

六、逻辑运算符

①&& (与运算符):对两侧的布尔值进行与运算,结果两侧布尔值中的假值(false)。
运算规则如下:

  1. 如果符号两侧的值都是true ,则结果是true。
  2. 如果符号两侧的值有一个是false,则结果是false。
  3. 先找到false值就停止找下去了。
  4. 如果左右的值隐式转换的结果为true,则取右边的值。

JavaScript中运算符的运算规则_第5张图片

②|| (或运算符):对两侧的布尔值进行或运算, 结果是找到两侧布尔值中的真值(true)。
运算规则如下:
1.如果符号两侧的值有一个true,则结果是true。
2.如果符号两侧的值都是false,则结果是false。
3.先找到true值就停止找下去了。

JavaScript中运算符的运算规则_第6张图片
题目一:!!’’+!!" “-!!false)&&null
运算过程:
1. (false+true-false)&&null
2. (0+1-0)&&null
3. 1&&null
4. null
题目二: (!!’’+!!” "-!!false)||[1,2]&&null
运算过程:
1. (false+true-false)&&null
2. 2. (0+1-0)&&null
3. 1||[1,2]&&null
4. 1||null
5. 1

结论:&&优先级高于||。

你可能感兴趣的:(web前端,javascript,算术运算符,逻辑运算符)