在本教程中,您将学习如何使用 JavaScript 算术运算符来执行算术计算。
JavaScript 算术运算符简介
JavaScript 支持以下标准算术运算符:
算法操作 | 符号 |
---|---|
加法 | + |
减法 | - |
乘法 | * |
分配 | / |
算术运算符接受数值作为操作数并返回单个数值。数值可以是字面量或变量。
加号运算符 +
加法运算符返回两个值的和。例如,语句 let sum = 10 + 20;
使用加法运算符计算两个数的和:
let sum = 10 + 20;
console.log(sum); // 30
此外,您可以对两个变量使用加号运算符。例如:
let netPrice = 9.99;
let shippingFee = 1.99;
let grossPrice = netPrice + shippingFee;
console.log(grossPrice);
11.98
如果其中一个值是 string,则加号运算符遵循以下规则:
- 如果两个值都是字符串,它将第二个字符串连接到第一个字符串。
- 如果一个值是字符串,它会隐式地将数值转换为字符串并连接两个字符串。
例如,以下使用加法运算符来连接两个字符串:
let x = '10';
let y = '20';
let result = x + y;
console.log(result);
1020
以下示例显示如何使用加号运算符计算数字和字符串的总和:
let result = 10 + '20';
console.log(result);
1020
在此示例中,JavaScript 将数字 10
转换为字符串 '10'
并连接第二个字符串 '20'
。
下表显示了对特殊数字使用加法运算符时的结果:
第一个值 | 第二个值 | 结果 | 解释 |
---|---|---|---|
NaN | NaN | 如果其一个值为 NaN,则结果为 NaN | |
Infinity | Infinity | Infinity | Infinity + Infinity = NaN |
-Infinity | -Infinity | -Infinity | -Infinity + ( -Infinity) = – Infinity |
Infinity | -Infinity | NaN | Infinity + -Infinity = NaN |
+0 | +0 | +0 | +0 + (+0) = +0 |
-0 | +0 | +0 | -0 + (+0) = +0 |
-0 | -0 | -0 | -0 + (-0) = -0 |
减号运算符 -
减法运算符 -
用于一个数字中减去另一个数字。例如:
let result = 30 - 10;
console.log(result); // 20
如果值是字符串、布尔值、null 或未定义,JavaScript 引擎将:
- 首先,使用
Number()
函数将值转换为数字。 - 之后,执行减法。
下表显示了如何对特殊值使用减法运算符:
第一个值 | 第二个值 | 结果 | 解释 |
---|---|---|---|
NaN | NaN | 如果其一个值为 NaN,则结果为 NaN | |
Infinity | Infinity | NaN | Infinity – Infinity = Infinity |
-Infinity | -Infinity | -Infinity | -Infinity – ( -Infinity) = -Infinity |
Infinity | -Infinity | Infinity | Infinity |
+0 | +0 | +0 | +0 – (+0) = +0 |
+0 | -0 | -0 | +0 – (-0) = -0 |
-0 | -0 | +0 | -0 – (-0) = +0 |
乘法运算符 *
JavaScript 使用星号 * 来表示乘法运算符。乘法运算符将两个数字相乘并返回一个值。例如:
let result = 2 * 3;
console.log(result);
6
如果任一值不是数字,则 JavaScript 引擎会使用 Number()
函数将其隐式转换为数字并执行乘法。例如:
let result = '5' * 2;
console.log(result);
10
下表显示乘法运算符如何处理特殊值:
第一个值 | 第二个值 | 结果 | 解释 |
---|---|---|---|
NaN | NaN | 如果任一值为 NaN,则结果为 NaN | |
Infinity | 0 | NaN | Infinity * 0 = NaN |
Infinity | Positive number | Infinity | -Infinity * 100 = -Infinity |
Infinity | Negative number | -Infinity | Infinity * (-100) = Infinity |
Infinity | Infinity | Infinity | Infinity * Infinity = Infinity |
除法运算符 /
Javascript 使用斜杠 /
字符来表示除法运算符。除法运算符将第一个值除以第二个值。例如:
let result = 20 / 10;
console.log(result); // 2
如果任一值不是数字,JavaScript 引擎会将其转换为数字,然后进行相除。例如:
let result = '20' / 2;
console.log(result); // 10;
下表显示了除法运算符在应用于特殊值时的行为:
第一个值 | 第二个值 | 结果 | 解释 |
---|---|---|---|
NaN | NaN | 如果任一值为 NaN,则结果为 NaN | |
A number | 0 | Infinity | 1/0 = Infinity |
Infinity | Infinity | NaN | Infinity / Infinity = NaN |
0 | 0 | NaN | 0/0 = NaN |
Infinity | A positive number | Infinity | Infinity / 2 = Infinity |
Infinity | A negative number | -Infinity | Infinity / -2 = -Infinity |
对对象使用 JavaScript 算术运算符
如果一个值是一个对象,JavaScript 引擎会调用valueOf()
对象的方法来获取值进行计算。例如:
let energy = {
valueOf() {
return 100;
},
};
let currentEnergy = energy - 10;
console.log(currentEnergy);
currentEnergy = energy + 100;
console.log(currentEnergy);
currentEnergy = energy / 2;
console.log(currentEnergy);
currentEnergy = energy * 1.5;
console.log(currentEnergy);
90
200
50
150
如果对象没有 valueOf()
方法,但存在 toString()
方法,JavaScript 引擎会调用 toString()
方法获取值进行计算。例如:
let energy = {
toString() {
return 50;
},
};
let currentEnergy = energy - 10;
console.log(currentEnergy);
currentEnergy = energy + 100;
console.log(currentEnergy);
currentEnergy = energy / 2;
console.log(currentEnergy);
currentEnergy = energy * 1.5;
console.log(currentEnergy);
40
150
25
75
结论
- 使用 JavaScript 算术运算符,包括加号
+
、减号-
、乘号*
和除号/
来执行算术运算。