JavaScript 算术运算符
在本教程中,您将学习如何使用 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 算术运算符,包括加号
+、减号-、乘号*和除号/来执行算术运算。