From 310fd066e91f454b990372ffa30e803cc8120975 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:56:40 +0100 Subject: unslug zh-cn: move --- .../operators/arithmetic_operators/index.html | 302 --------------------- 1 file changed, 302 deletions(-) delete mode 100644 files/zh-cn/web/javascript/reference/operators/arithmetic_operators/index.html (limited to 'files/zh-cn/web/javascript/reference/operators/arithmetic_operators') diff --git a/files/zh-cn/web/javascript/reference/operators/arithmetic_operators/index.html b/files/zh-cn/web/javascript/reference/operators/arithmetic_operators/index.html deleted file mode 100644 index 917ac03b06..0000000000 --- a/files/zh-cn/web/javascript/reference/operators/arithmetic_operators/index.html +++ /dev/null @@ -1,302 +0,0 @@ ---- -title: 算术运算符 -slug: Web/JavaScript/Reference/Operators/Arithmetic_Operators -tags: - - JavaScript - - Operator -translation_of: Web/JavaScript/Reference/Operators -translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators ---- -
{{jsSidebar("Operators")}}
- -

算术运算符以数值(字面量或变量)作为其操作数,并返回一个单个数值。标准算术运算符是加法(+),减法(-),乘法(*)和除法(/)。

- -
{{EmbedInteractiveExample("pages/js/expressions-arithmetic.html")}}
- - - -

加法 (+)

- -

加法运算符的作用是数值求和,或者字符串拼接。

- -

语法

- -
运算符: x + y
-
- -

示例

- -
// Number + Number -> 数字相加
-1 + 2 // 3
-
-// Boolean + Number -> 数字相加
-true + 1 // 2
-
-// Boolean + Boolean -> 数字相加
-false + false // 0
-
-// Number + String -> 字符串连接
-5 + "foo" // "5foo"
-
-// String + Boolean -> 字符串连接
-"foo" + false // "foofalse"
-
-// String + String -> 字符串连接
-"foo" + "bar" // "foobar"
-
- -

减法 (-)

- -

减法运算符使两个操作数相减,结果是它们的差值。

- -

语法

- -
运算符: x - y
-
- -

示例

- -
5 - 3 // 2
-3 - 5 // -2
-"foo" - 3 // NaN
- -

除法 (/)

- -

除法运算符的结果是操作数的商 ,左操作数是被除数,右操作数是除数。

- -

语法

- -
运算符: x / y
-
- -

示例

- -
1 / 2      // 在 JavaScript 中返回 0.5
-1 / 2      // 在 Java 中返回 0
-// (不需要数字是明确的浮点数)
-
-1.0 / 2.0  // 在 JavaScript 或 Java 中都返回 0.5
-
-2.0 / 0    // 在 JavaScript 中返回 Infinity
-2.0 / 0.0  // 同样返回 Infinity
-2.0 / -0.0 // 在 JavaScript 中返回 -Infinity
- -

乘法 (*)

- -

乘法运算符的结果是操作数的乘积。

- -

语法

- -
运算符: x * y
-
- -

示例

- -
2 * 2 // 4
--2 * 2 // -4
-Infinity * 0 // NaN
-Infinity * Infinity // Infinity
-"foo" * 2 // NaN
-
- -

求余 (%)

- -

求余运算符返回第一个操作数对第二个操作数的模,即 var1 对 var2 取模,其中 var1 和 var2 是变量。取模功能就是 var1 除以 var2 的整型余数。

- -

语法

- -
运算符: var1 % var2
-
- -

示例

- -
12 % 5 // 2
--1 % 2 // -1
-NaN % 2 // NaN
-1 % 2 // 1
-2 % 3 // 2
--4 % 2 // -0
-5.5 % 2 // 1.5
-
- -

幂 (**)

- -

幂运算符返回第一个操作数做底数,第二个操作数做指数的乘方。即,var1var2,其中 var1var2 是其两个操作数。幂运算符是右结合的。a ** b ** c 等同于 a ** (b ** c)

- -

语法

- -
运算符: var1 ** var2
-
- -

注解

- -

包括 PHP 或 Python 等的大多数语言中,都包含幂运算符(一般来说符号是 ^ 或者 **)。这些语言中的幂运算符有着比其他的单目运算符(如一元 + 或一元 - )更高的优先级。但是作为例外,在 Bash 中,**  运算符被设计为比单目运算符优先级更低。在最新的 JavaScript(ES2016) 中,禁止使用带歧义的幂运算表达式。比如,底数前不能紧跟一元运算符(+/-/~/!/delete/void/typeof)。

- -
-2 ** 2;
-// 在 Bash 中等于 4 ,而在其他语言中一般等于 -4
-// 在 JavaScript 中是错误的,因为这会有歧义
-
--(2 ** 2);
-// -4 在 JavaScript 中能够明显体现出作者的意图
- -

示例

- -
2 ** 3 // 8
-3 ** 2 // 9
-3 ** 2.5 // 15.588457268119896
-10 ** -1 // 0.1
-NaN ** 2 // NaN
-
-2 ** 3 ** 2 // 512
-2 ** (3 ** 2) // 512
-(2 ** 3) ** 2 // 64
-
- -

如果要反转求幂表达式结果的符号,你可以采用这样的方式:

- -
-(2 ** 2) // -4
- -

强制求幂表达式的基数为负数:

- -
(-2) ** 2 // 4
- -

递增 (++)

- -

递增运算符为其操作数增加1,返回一个数值。

- - - -

语法

- -
运算符: x++ 或者 ++x
-
- -

示例

- -
// 后置
-var x = 3;
-y = x++;
-// y = 3, x = 4
-
-// 前置
-var a = 2;
-b = ++a;
-// a = 3, b = 3
-
- -

递减 (--)

- -

递减运算符将其操作数减去1,并返回一个数值。

- - - -

语法

- -
运算符: x-- or --x
-
- -

示例

- -
// 后置
-var x = 3;
-y = x--; // y = 3, x = 2
-
-// 前置
-var a = 2;
-b = --a; // a = 1, b = 1
-
- -

一元负号 (-)

- -

一元负号运算符位于操作数前面,并转换操作数的符号。

- -

语法

- -
运算符: -x
-
- -

示例

- -
var x = 3;
-y = -x; // y = -3, x = 3
-
- -

一元正号 (+)

- -

一元正号运算符位于其操作数前面,计算其操作数的数值,如果操作数不是一个数值,会尝试将其转换成一个数值。 尽管一元负号也能转换非数值类型,但是一元正号是转换其他对象到数值的最快方法,也是最推荐的做法,因为它不会对数值执行任何多余操作。它可以将字符串转换成整数和浮点数形式,也可以转换非字符串值 truefalse  null。小数和十六进制格式字符串也可以转换成数值。负数形式字符串也可以转换成数值(对于十六进制不适用)。如果它不能解析一个值,则计算结果为 NaN

- -

语法

- -
运算符: +x
-
- -

示例

- -
+3     // 3
-+"3"   // 3
-+true  // 1
-+false // 0
-+null  // 0
-+function(val){ return val;} //NaN
- -

规范

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-11.3')}}{{Spec2('ES5.1')}}Defined in several sections of the specification: Additive operators, Multiplicative operators, Postfix expressions, Unary operators.
{{SpecName('ES2015', '#sec-postfix-expressions')}}{{Spec2('ES2015')}}Defined in several sections of the specification: Additive operators, Multiplicative operators, Postfix expressions, Unary operators.
{{SpecName('ES2016', '#sec-postfix-expressions')}}{{Spec2('ES2016')}}Added Exponentiation operator.
{{SpecName('ES2017', '#sec-postfix-expressions')}}{{Spec2('ES2017')}}
{{SpecName('ESDraft', '#sec-additive-operators')}}{{Spec2('ESDraft')}}
- -

浏览器兼容性

- - - -

{{Compat("javascript.operators.arithmetic")}}

- -

相关链接

- - -- cgit v1.2.3-54-g00ecf