JavaScript 算术运算符

摘要:在本教程中,您将学习如何使用 JavaScript 算术运算符执行算术计算。

JavaScript 算术运算符简介

JavaScript 支持以下标准算术运算符

运算符符号
加法+
减法-
乘法*
除法/

算术运算符接受数值作为操作数,并返回单个数值。数值可以是字面量或变量。

加法运算符 (+)

加法运算符返回两个值的总和。例如,以下代码使用加法运算符计算两个数字的总和

let sum = 10 + 20;
console.log(sum); // 30Code language: JavaScript (javascript)

此外,您可以将加法运算符与两个 变量 一起使用。例如

let netPrice    = 9.99,
    shippingFee = 1.99;
let grossPrice  = netPrice + shippingFee;

console.log(grossPrice);Code language: JavaScript (javascript)

输出

11.98Code language: CSS (css)

如果其中一个值为 字符串,则加法运算符将使用以下规则

  • 如果两个值都是字符串,则将第二个字符串连接到第一个字符串。
  • 如果一个值为字符串,则将隐式地将数值转换为字符串,并将两个字符串连接起来。

例如,以下代码使用加法运算符连接两个字符串

let x = '10',
    y = '20';
let result = x + y;

console.log(result);Code language: JavaScript (javascript)

输出

1020

以下示例演示了如何使用加法运算符计算数字和字符串的总和

let result = 10 + '20';

console.log(result);    Code language: JavaScript (javascript)

输出

1020

在此示例中,JavaScript 将数字 10 转换为字符串 '10' 并将第二个字符串 '20' 连接到它。

下表显示了在使用加法运算符与特殊数字时得到的结果

第一个值第二个值结果解释
NaNNaN如果其中一个值为 NaN,则结果为 NaN
InfinityInfinityInfinityInfinity + Infinity = Infinity
-Infinity-Infinity-Infinity-Infinity + ( -Infinity) = – Infinity
Infinity-InfinityNaNInfinity + -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); // 20Code language: JavaScript (javascript)

如果一个值为字符串、布尔值、null 或 undefined,则 JavaScript 引擎将

  • 首先,使用 Number() 函数将该值转换为数字。
  • 其次,执行减法。

下表显示了如何使用减法运算符与特殊值一起使用

第一个值第二个值结果解释
NaNNaN如果其中一个值为 NaN,则结果为 NaN
InfinityInfinityNaNInfinity – Infinity = NaN
-Infinity-Infinity-Infinity-Infinity – ( -Infinity) = NaN
Infinity-InfinityInfinityInfinity
+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);Code language: JavaScript (javascript)

输出

6

如果其中一个值不是数字,则 JavaScript 引擎将隐式地使用 Number() 函数将其转换为数字,并执行乘法。例如

let result = '5' * 2;

console.log(result);Code language: JavaScript (javascript)

输出

10

下表显示了乘法运算符在应用于特殊值时的行为

第一个值第二个值结果解释
NaNNaN如果其中一个值为 NaN,则结果为 NaN
Infinity0NaNInfinity * 0 = NaN
Infinity正数Infinity-Infinity * 100 = -Infinity
Infinity负数-InfinityInfinity * (-100) = -Infinity
InfinityInfinityInfinityInfinity * Infinity = Infinity

除法运算符 (/)

Javascript 使用斜杠 (/) 字符来表示除法运算符。除法运算符将第一个值除以第二个值。例如

let result = 20 / 10;

console.log(result); // 2Code language: JavaScript (javascript)

如果其中一个值不是数字,则 JavaScript 引擎将将其转换为数字以进行除法。例如

let result = '20' / 2;
console.log(result); // 10;Code language: JavaScript (javascript)

下表显示了除法运算符在应用于特殊值时的行为

第一个值第二个值结果解释
NaNNaN如果其中一个值为 NaN,则结果为 NaN
一个数字0Infinity1/0 = Infinity
InfinityInfinityNaNInfinity / Infinity = NaN
00NaN0/0 = NaN
Infinity正数InfinityInfinity / 2 = Infinity
Infinity负数-InfinityInfinity / -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);
Code language: JavaScript (javascript)

输出

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);
Code language: JavaScript (javascript)

输出

40
150
25
75

总结

  • 使用 JavaScript 算术运算符,包括加法 (+)、减法 (-)、乘法 (*) 和除法 (/) 执行算术运算。
本教程是否有帮助?