算术运算符和数学中的一样,包括加减乘除法、乘方以及取余运算,主要用于执行数值之间的算术运算,但是如果在非数值之间使用算术运算符,就需要了解 JavaScript 的一些默认行为。
1// 加法
2let res = 10 + 20
3console.log(res)
4
5// 减法
6res = 20 - 8
7console.log(res)
8
9// 乘法
10res = 5 * 4
11console.log(res)
12
13// 除法
14res = 20 / 4
15console.log(res)
16
17// 取余
18res = 20 % 3
19console.log(res)
20
21// 乘方
22res = 2 ** 3
23console.log(res)
如果在两个字符串之间使用+
运算符,将会拼接两个字符串,如果在字符串和数值之间使用+
运算符,会先将数值转换为字符串,再拼接它们。
let res = "Hello" + " " + "JavaScript"
console.log(res)
res = "Hello " + 1024
console.log(res)
如果在两个字符串之间或者一个字符串和一个数值之间使用其它算术运算符,会先将非数值转换为数值再进行计算,如果其中一个转换之后结果是NaN,则最终结果也是NaN。
let n = "10" - "5"
console.log(n)
n = "abc" / "5"
console.log(n)
比较运算符用于比较两个值或变量,并根据结果返回true和false。比较运算符包括>
、<
、==
、!=
、>=
、<=
以及===
和!==
。
let a = 1, b = 2
console.log(`a > b ? ${a > b}`)
console.log(`a < b ? ${a < b}`)
console.log(`a == b ? ${a == b}`)
console.log(`a != b ? ${a != b}`)
console.log(`a <= b ? ${a <= b}`)
console.log(`a >= b ? ${a >= b}`)
在JavaScript中,如果比较的两个数据类型不相同,会在进行比较之前进行隐式的类型转换,所以会出现一个比较有意思的想象,比如 "1" == 1
、0 == false
都是true,如果想要更加严格的比较,就可以使用严格相等===
和严格不相等!==
来进行比较。
console.log("1" == 1)
console.log("1" === 1)
JavaScript 中有三种基本逻辑运算符,逻辑或||
、逻辑与&&
和逻辑非!
,它们和数学中的逻辑运算类似,逻辑运算符通常用于组合多个条件,而且可以用于任意类型,而不仅仅是布尔类型,返回结果也不一定是布尔类型。
let a = false, b = "js"
console.log(a && b)
console.log(a || b)
console.log(!a)
console.log(!b)
a || console.log("hello ||")
a && console.log("hello &&")
赋值运算符用于将值赋给变量,最基本的赋值操作符就是=
,还有一些组合类型的赋值操作符,比如+=
,用于执行+
操作后再赋值,还有-=
、*=
和/=
,下面来看看它们的使用方法。
let a = 1, b = 3
console.log(`a = ${a}, b = ${b}`)
b += a //相当于 b = b + a
console.log(`b = ${b}`)
b -= 2 //相当于 b = b - 2
console.log(`b = ${b}`)
b *= 5 //相当于 b = b * 5
console.log(`b = ${b}`)
b /= 5 //相当于 b = b / 5
console.log(`b = ${b}`)
一元运算符是指只有一个数值参与运算,JavaScript 中的一元运算符包括
+
,比如 +x,用于将 x 转换为数值类型。-
,比如 -x,用于 x 转换为数值类型,并且其转换为负数。++
,相当于 x = x + 1,分为前缀和后缀,比如 x++ 和 ++x ,它们区别在于 x++ 先将 x 值返回再 + 1,而 ++x 则先将 x 值 + 1再返回,具体看下方示例。--
,相当于 x = x - 1,分为前缀和后缀,和 ++ 运算符类似。1let x = "10"
2console.log(+x)
3console.log(-x)
4let n = 10
5let m = n++
6console.log(`m = ${m}, n = ${n}`)
7n = 10
8m = ++n
9console.log(`m = ${m}, n = ${n}`)
10n = 10
11m = n--
12console.log(`m = ${m}, n = ${n}`)
13n = 10
14m = --n
15console.log(`m = ${m}, n = ${n}`)
JavaScript中的空值合并运算符是??
,它的基本形式是a ?? b
,当 a 是 null 或者 undefined 时,返回b,否则返回 a。
let a = null, b = "JavaScript"
console.log(a ?? b)
a = "Hello", b = "JavaScript"
console.log(a ?? b)