diff --git a/1-js/02-first-steps/08-operators/article.md b/1-js/02-first-steps/08-operators/article.md index 2a5427dd0..b57c1f808 100644 --- a/1-js/02-first-steps/08-operators/article.md +++ b/1-js/02-first-steps/08-operators/article.md @@ -4,12 +4,12 @@ 在本章中,我们将从简单的运算符开始,然后着重介绍 JavaScript 特有的方面,这些是在学校中学习的数学运算所没有涵盖的。 -## 术语:“一元运算符”,“二元运算符”,“运算元” +## 术语:“一元运算符”,“二元运算符”,“操作数” 在正式开始前,我们先简单浏览一下常用术语。 -- **运算元** —— 运算符应用的对象。比如说乘法运算 `5 * 2`,有两个运算元:左运算元 `5` 和右运算元 `2`。有时候人们也称其为“参数”而不是“运算元”。 -- 如果一个运算符对应的只有一个运算元,那么它是 **一元运算符**。比如说一元负号运算符(unary negation)`-`,它的作用是对数字进行正负转换: +- **操作数** —— 运算符应用的对象。比如说乘法运算 `5 * 2`,有两个操作数:左操作数 `5` 和右操作数 `2`。有时候人们也称其为“参数”而不是“操作数”。 +- 如果一个运算符对应的只有一个操作数,那么它是 **一元运算符**。比如说一元负号运算符(unary negation)`-`,它的作用是对数字进行正负转换: ```js run let x = 1; @@ -19,7 +19,7 @@ */!* alert( x ); // -1,一元负号运算符生效 ``` -- 如果一个运算符拥有两个运算元,那么它是 **二元运算符**。减号还存在二元运算符形式: +- 如果一个运算符拥有两个操作数,那么它是 **二元运算符**。减号还存在二元运算符形式: ```js run no-beautify let x = 1, y = 3; @@ -91,7 +91,7 @@ let s = "my" + "string"; alert(s); // mystring ``` -注意:只要任意一个运算元是字符串,那么另一个运算元也将被转化为字符串。 +注意:只要任意一个操作数是字符串,那么另一个操作数也将被转化为字符串。 举个例子: @@ -100,7 +100,7 @@ alert( '1' + 2 ); // "12" alert( 2 + '1' ); // "21" ``` -你看,第一个运算元和第二个运算元,哪个是字符串并不重要。 +你看,第一个操作数和第二个操作数,哪个是字符串并不重要。 下面是一个更复杂的例子: @@ -115,20 +115,20 @@ alert('1' + 2 + 2); // "122",不是 "14" ``` 这里,第一个操作数是一个字符串,所以编译器将其他两个操作数也视为了字符串。`2` 被与 `'1'` 连接到了一起,也就是像 `'1' + 2 = "12"` 然后 `"12" + 2 = "122"` 这样。 -二元 `+` 是唯一一个以这种方式支持字符串的运算符。其他算术运算符只对数字起作用,并且总是将其运算元转换为数字。 +二元 `+` 是唯一一个以这种方式支持字符串的运算符。其他算术运算符只对数字起作用,并且总是将其操作数转换为数字。 下面是减法和除法运算的示例: ```js run alert( 6 - '2' ); // 4,将 '2' 转换为数字 -alert( '6' / '2' ); // 3,将两个运算元都转换为数字 +alert( '6' / '2' ); // 3,将两个操作数都转换为数字 ``` ## 数字转化,一元运算符 + 加号 `+` 有两种形式。一种是上面我们刚刚讨论的二元运算符,还有一种是一元运算符。 -一元运算符加号,或者说,加号 `+` 应用于单个值,对数字没有任何作用。但是如果运算元不是数字,加号 `+` 则会将其转化为数字。 +一元运算符加号,或者说,加号 `+` 应用于单个值,对数字没有任何作用。但是如果操作数不是数字,加号 `+` 则会将其转化为数字。 例如: @@ -177,7 +177,7 @@ alert( +apples + +oranges ); // 5 从一个数学家的视角来看,大量的加号可能很奇怪。但是从一个程序员的视角,没什么好奇怪的:一元运算符加号首先起作用,它们将字符串转为数字,然后二元运算符加号对它们进行求和。 -为什么一元运算符先于二元运算符作用于运算元?接下去我们将讨论到,这是由于它们拥有 **更高的优先级**。 +为什么一元运算符先于二元运算符作用于操作数?接下去我们将讨论到,这是由于它们拥有 **更高的优先级**。 ## 运算符优先级 @@ -423,7 +423,7 @@ counter++; ## 位运算符 -位运算符把运算元当做 32 位整数,并在它们的二进制表现形式上操作。 +位运算符把操作数当做 32 位整数,并在它们的二进制表现形式上操作。 这些运算符不是 JavaScript 特有的。大部分的编程语言都支持这些运算符。