Skip to content
本页目录

JavaScript 运算符

运算符

运算符也被称为操作符,是用于实现赋值、比较和执行算数运算等动能的符号。

JavaScript 中常用的运算符有:

  • 算数运算符
  • 递增和递减运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符

算数运算符

运算符描述实例
+1 + 2 = 3
-3 - 2 = 1
*2 * 4 = 8
/10 / 2 = 5
**幂运算2 ** 4 = 16
%模运算(取余数)10 % 3 = 1

浮点数的进度问题 浮点数值的最高精度是 17 位小数,但在进行计算时其精确度远远不如整数

js
console.log(0.1 + 0.2) // 0.30000000000000004
console.log(0.07 * 100) // 7.000000000000001

赋值运算符

运算符名称描述实例
=赋值let a = 10
??=空赋值
只有当变量的值为 null 或 undefined 时才会对变量进行赋值
3 - 2 = 1
+=加等于a += n 等价于 a = a + n
-=减等于a -= n 等价于 a = a - n
*=乘等于a *= n 等价于 a = a * n
/=除等于a /= n 等价于 a = a / n
%=模等于a %= n 等价于 a = a % n

自增和自减

++ 自增运算符

  • ++ 使用后会使得原来的变量立刻增加 1
  • 自增分为前自增(++a)和后自增(a++)
  • 无论是++a 还是 a++都会使原变量立刻增加 1
  • 不同的是++a 和 a++所返回的值不同 a++ 是自增前的值 旧值 ++a 是自增后的值 新值
js
let a = 10

// let b = a++
// console.log("a++ =", b)

let b = ++a
// console.log("++a =", b)
// console.log(a)

let n = 5
//           5 + 7 + 7
let result = n++ + ++n + n

// console.log(result)

-- 自减运算符

  • 使用后会使得原来的变量立刻减小 1
  • 自减分为前自减(--a)和后自减(a--)
  • 无论是--a 还是 a--都会使原变量立刻减少 1
  • 不同的是--a 和 a--的值不同 --a 是新值 a-- 是旧值
js
a1 = 5
a2 = 5

console.log('--a1', --a1)
console.log('a2--', a2--)

console.log(a1, a2)

比较运行符

运算符名称描述案列结果
<小于号1 < 2true
>大于号1 > 2false
<=小于等于号2 <= 2true
>=大于等于号3 >= 4false
==判等号(判断两边值是否相等)18 == '18'true
!=不等号'aaa' != 'abc'true
=== !==全等(要求值和数据类型都一致)18 === '18'false

逻辑运算符

逻辑与 &&

一假即假

  • 可以对两个值进行与运算

  • 当&&左右都为 true 时,则返回 true,否则返回 false

  • 与运算是短路的与,如果第一个值为 false,则不看第二个值

  • 与运算是找 false 的,如果找到 false 则直接返回,没有 false 才会返回 true

  • 对于非布尔值进行与运算,它会转换为布尔值然后运算

    但是最终会返回原值

    • 如果第一个值为 false,则直接返回第一个值
    • 如果第一个值为 true,则返回第二个值
js
console.log(true && false) // false

逻辑或 ||

一真即真

  • 可以对两个值进行或运算

  • 当||左右有 true 时,则返回 true,否则返回 false

  • 或运算也是短路的或,如果第一个值为 true,则不看第二个值

  • 或运算是找 true,如果找到 true 则直接返回,没有 true 才会返回 false

  • 对于非布尔值或运算,它会转换为布尔值然后运算

    但是最终会返回原值

    • 如果第一个值为 true,则返回第一个
    • 如果第一个值为 false,则返回第二个
js
console.log(true || false) // true

逻辑非 !

js
console.log(!false) // true

条件运算符

条件表达式 ? 表达式 1 : 表达式 2

执行顺序:

条件运算符在执行时,会先对条件表达式进行求值判断

  • 如果结果为 true,则执行表达式 1
  • 如果结果为 false,则执行表达式 2

运算符的优先级

JavaScript 各种运算符的优先级别(Operator Precedence)是不一样的。优先级高的运算符先执行,优先级低的运算符后执行。

js
4 + 5 * 6 // 34

圆括号(())可以用来提高运算的优先级,因为它的优先级是最高的,即圆括号中的表达式会第一个运算。使用运算符时,如果遇到拿不准的,可以直接通过()来改变优先级即可。

js
(4 + 5) * 6 // 54

a = (1 && 2) || 3   // 2

lemon's personal blog.