diff --git a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html index a3cd4894aba997..2c863abfa38bf2 100644 --- a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html +++ b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html @@ -12,23 +12,23 @@
本章描述了 JavaScript 的表达式和运算符,包括了赋值,比较,算数,位运算,逻辑,字符串,三元等等。
-一个完整详细的运算符列表和表达式可以参见 reference.
+一个完整详细的运算符列表和表达式可以参见 reference.
JavaScript 拥有如下类型的运算符。本节描述了运算符和运算符的优先级。
JavaScript 拥有二元和一元运算符, 和一个特殊的三元运算符(条件运算符)。一个二元运算符需要两个操作数,分别在运算符的前面和后面:
@@ -50,7 +50,7 @@一个 赋值运算符 (assignment operator) 将它右边操作数的值赋给它左边的操作数。最简单的赋值运算符是等于(=
),它将右边的操作数值赋给左边的操作数。那么 x = y
就是将 y 的值赋给 x。
一个 赋值运算符 (assignment operator) 将它右边操作数的值赋给它左边的操作数。最简单的赋值运算符是等于(=
),它将右边的操作数值赋给左边的操作数。那么 x = y
就是将 y 的值赋给 x。
还有一些复合赋值操作符,它们是下表列出的这些操作的缩写:
@@ -65,67 +65,67 @@x = y
x = y
x += y
x = x + y
x -= y
x = x - y
x *= y
x = x * y
x /= y
x = x / y
x %= y
x = x % y
x **= y
x = x ** y
x <<= y
x = x << y
x >>= y
x = x >> y
x >>>= y
x = x >>> y
x &= y
x = x & y
x ^= y
x = x ^ y
x |= y
x = x | y
对于更复杂的赋值,解构赋值语法是一个能从数组或对象对应的数组结构或对象字面量里提取数据的 Javascript 表达式。
+对于更复杂的赋值,解构赋值语法是一个能从数组或对象对应的数组结构或对象字面量里提取数据的 Javascript 表达式。
var foo = ["one", "two", "three"]; @@ -148,7 +148,7 @@解构
比较运算符
-比较运算符比较它的操作数并返回一个基于表达式是否为真的逻辑值。操作数可以是数字,字符串,逻辑,对象值。字符串比较是基于标准的字典顺序,使用 Unicode 值。在多数情况下,如果两个操作数不是相同的类型, JavaScript 会尝试转换它们为恰当的类型来比较。这种行为通常发生在数字作为操作数的比较。类型转换的例外是使用
+===
和!==
操作符,它们会执行严格的相等和不相等比较。这些运算符不会在检查相等之前转换操作数的类型。下面的表格描述了该示例代码中的各比较运算符比较运算符比较它的操作数并返回一个基于表达式是否为真的逻辑值。操作数可以是数字,字符串,逻辑,对象值。字符串比较是基于标准的字典顺序,使用 Unicode 值。在多数情况下,如果两个操作数不是相同的类型, JavaScript 会尝试转换它们为恰当的类型来比较。这种行为通常发生在数字作为操作数的比较。类型转换的例外是使用
===
和!==
操作符,它们会执行严格的相等和不相等比较。这些运算符不会在检查相等之前转换操作数的类型。下面的表格描述了该示例代码中的各比较运算符var var1 = 3; var var2 = 4;@@ -164,7 +164,7 @@比较运算符
- 等于 Equal ( +==
)等于 Equal ( ==
)@@ -173,42 +173,42 @@ 如果两边操作数相等时返回 true。
比较运算符
3 == '3'
- 不等于 Not equal ( +!=
)不等于 Not equal ( !=
)如果两边操作数不相等时返回 true var1 != 4
var2 != "3"- 全等 Strict equal ( -===
)两边操作数相等且类型相同时返回 true。 参见 {{jsxref("Object.is")}} and sameness in JS. +全等 Strict equal ( +===
)两边操作数相等且类型相同时返回 true。 参见 {{jsxref("Object.is")}} and sameness in JS. 3 === var1
- 不全等 Strict not equal ( +!==
)不全等 Strict not equal ( !==
)两边操作数不相等或类型不同时返回 true。 var1 !== "3"
3 !== '3'- 大于 Greater than ( +>
)大于 Greater than ( >
)左边的操作数大于右边的操作数返回 true var2 > var1
"12" > 2- 大于等于 Greater than or equal ( +>=
)大于等于 Greater than or equal ( >=
)左边的操作数大于或等于右边的操作数返回 true var2 >= var1
var1 >= 3- 小于 Less than ( +<
)小于 Less than ( <
)左边的操作数小于右边的操作数返回 true var1 < var2
"2" < 12- 小于等于 Less than or equal ( +<=
)小于等于 Less than or equal ( <=
)左边的操作数小于或等于右边的操作数返回 true @@ -217,7 +217,7 @@ var1 <= var2
var2 <= 5比较运算符
算术运算符
@@ -321,29 +321,29 @@位运算符
- 按位与 AND +按位与 AND a & b
在 a,b 的位表示中,每一个对应的位都为 1 则返回 1, 否则返回 0.
- 按位或 OR +按位或 OR a | b
在 a,b 的位表示中,每一个对应的位,只要有一个为 1 则返回 1, 否则返回 0. - 按位异或 XOR +按位异或 XOR a ^ b
在 a,b 的位表示中,每一个对应的位,两个不相同则返回 1,相同则返回 0. - 按位非 NOT +按位非 NOT ~ a
反转被操作数的位。 - @@ -484,17 +484,17 @@左移 shift +左移 shift a << b
将 a 的二进制串向左移动 b 位,右边移入 0. 逻辑运算符
- 逻辑与 +(&&
)逻辑与 (&&
)expr1 && expr2
(逻辑与) 如果 expr1 能被转换为 false,那么返回 expr1;否则,返回 expr2
。因此,&&
用于布尔值时,当操作数都为 true 时返回 true;否则返回 false.- 逻辑或 ( +||
)逻辑或 ( ||
)expr1 || expr2
(逻辑或) 如果 expr1 能被转换为 true,那么返回 expr1;否则,返回 expr2
。因此,|| 用于布尔值时,当任何一个操作数为 true 则返回 true;如果操作数都是 false 则返回 false。- @@ -592,7 +592,7 @@逻辑非 +(!)
逻辑非 (!)
!expr
(逻辑非) 如果操作数能够转换为 true 则返回 false;否则返回 true。 一元操作符
-
delete
+
delete
操作符,删除一个对象的属性或者一个数组中某一个键值。语法如下:
delete
操作符,删除一个对象的属性或者一个数组中某一个键值。语法如下:delete objectName.property; delete objectName[index]; @@ -601,7 +601,7 @@-
delete
-
objectName
是一个对象名,property
是一个已经存在的属性,index
是数组中的一个已经存在的键值的索引值。第三行的形式只在
+with
声明的状态下是合法的, 从对象中删除一个属性。第三行的形式只在
with
声明的状态下是合法的, 从对象中删除一个属性。你能使用
@@ -724,13 +724,13 @@delete
删除各种各样的隐式声明, 但是被var
声明的除外。
void
<a href="javascript:void(document.form.submit())"> Click here to submit</a>-关系操作符
+关系运算符
-关系操作符对操作数进行比较,根据比较结果真或假,返回相应的布尔值。
+关系运算符对操作数进行比较,根据比较结果真或假,返回相应的布尔值。
-
in
+
in
操作符,如果所指定的属性确实存在于所指定的对象中,则会返回true
,语法如下:
in
操作符,如果所指定的属性确实存在于所指定的对象中,则会返回true
,语法如下:propNameOrNumber in objectName@@ -861,7 +861,7 @@运算符优先级
上表有一个更详细的版本,它包含了各操作符更详细的说明,可在 JavaScript 参考手册 中找到。
+上表有一个更详细的版本,它包含了各操作符更详细的说明,可在 JavaScript 参考手册中找到。
表达式
@@ -876,9 +876,9 @@表达式
JavaScript 有以下表达式类型:
this
this
关键字被用于指代当前的对象,通常,this
指代的是方法中正在被调用的对象。用法如下:
this
关键字被用于指代当前的对象,通常,this
指代的是方法中正在被调用的对象。用法如下:
this["propertyName"] this.propertyName @@ -934,7 +934,7 @@数值推导
Comprehensions 特性被许多编程语言所采用,该特性能够使你快速地通过一个已有的数组来创建出一个新的数组,比如:
@@ -952,14 +952,14 @@new
你可以使用new
operator 创建一个自定义类型或者是预置类型
的对象实例。用法如下:
你可以使用new
operator 创建一个自定义类型或者是预置类型
的对象实例。用法如下:
var objectName = new objectType([param1, param2, ..., paramN]);
super
-super 关键字可以用来调用一个对象父类的函数,它在用来调用一个类的父类的构造函数时非常有用,比如:
+super 关键字可以用来调用一个对象父类的函数,它在用来调用一个类的父类的构造函数时非常有用,比如:
super([arguments]); // calls the parent constructor. super.functionOnParent([arguments]);diff --git a/files/zh-cn/web/javascript/guide/working_with_objects/index.html b/files/zh-cn/web/javascript/guide/working_with_objects/index.html index 2b566222eaa48e..0393978dcec2a5 100644 --- a/files/zh-cn/web/javascript/guide/working_with_objects/index.html +++ b/files/zh-cn/web/javascript/guide/working_with_objects/index.html @@ -152,12 +152,12 @@
if (cond) var x = {hi: "there"};-
下例创建了有三个属性的 myHonda
对象。注意它的 engine
属性也是一个拥有自己属性的对象。
下例创建了有三个属性的 myHonda
对象。注意它的 engine
属性也是一个拥有自己属性的对象。
var myHonda = {color: "red", wheels: 4, engine: {cylinders: 4, size: 2.2}};-
你也可以用对象初始化器来创建数组。参见 {{ web.link("Values%2C_variables%2C_and_literals#Array_literals", "array literals") }}.
+你也可以用对象初始化器来创建数组。参见数组字面量
在 JavaScript 1.1 及更早版本中,你不能使用对象初始化器。你只能通过使用构造函数或其他对象的函数来创建对象。参见 使用构造函数.
@@ -239,7 +239,7 @@对象也可以用 {{jsxref("Object.create()")}} 方法创建。该方法非常有用,因为它允许你为创建的对象选择一个原型对象,而不用定义构造函数。
+对象也可以用 {{jsxref("Object.create()")}} 方法创建。该方法非常有用,因为它允许你为创建的对象选择一个原型对象,而不用定义构造函数。
// Animal properties and method encapsulation var Animal = { @@ -259,8 +259,6 @@-使用 Object.create 方法
fish.displayType(); // Output:Fishes
该函数更多的信息及详细用法,参见 {{ web.link("/zh-CN/docs/JavaScript/Reference/Global_Objects/Object/create", "Object.create method") }}
-所有的 JavaScript 对象至少继承于一个对象。被继承的对象被称作原型,并且继承的属性可通过构造函数的 prototype
对象找到。查看更多详细 Inheritance and the prototype chain
你可以用 delete 操作符删除一个不是继承而来的属性。下面的例子说明如何删除一个属性:
+你可以用 delete
操作符删除一个不是继承而来的属性。下面的例子说明如何删除一个属性:
//Creates a new object, myobj, with two properties, a and b. var myobj = new Object; @@ -470,14 +468,12 @@-删除属性
delete myobj.a;
如果一个全局变量不是用 var
关键字声明的话,你也可以用 delete
删除它:
如果一个全局变量不是用 var
关键字声明的话,你也可以用 delete
删除它:
g = 17; delete g;-
参见{{ web.link("Expressions_and_operators#delete", "delete") }}
以获取更多信息。
在 JavaScript 中 objects 是一种引用类型。两个独立声明的对象永远也不会相等,即使他们有相同的属性,只有在比较一个对象和这个对象的引用时,才会返回 true.
diff --git a/files/zh-tw/web/javascript/guide/expressions_and_operators/index.html b/files/zh-tw/web/javascript/guide/expressions_and_operators/index.html index c0972142ee2ce2..0b7d981b76d681 100644 --- a/files/zh-tw/web/javascript/guide/expressions_and_operators/index.html +++ b/files/zh-tw/web/javascript/guide/expressions_and_operators/index.html @@ -14,16 +14,16 @@JavaScript 有以下幾種運算子。 此處將描述運算子以及一些運算子的優先順序。
JavaScript 同時具有二元運算子及一元運算子, 以及一種特殊的 三元運算子,也就是 條件運算子。 一個二元運算子需要具備兩個運算元, 一個在運算元之前,一個在運算元之後:
@@ -522,7 +522,7 @@這個陳述句會將 "成人" 賦與給變數 status
假如 age
大於等於18。 否則,會將 "小孩" 賦與給變數 status
。
逗點運算子 (,
) 作用是解析兩個運算元並回傳後面那個運算元的值。 這個運算子通常用於for迴圈內部,讓多個變數能在每次迴圈中被更新。
JavaScript has several top-level predefined functions:
The following sections introduce these functions. See the JavaScript Reference for detailed information on all of these functions.
diff --git a/files/zh-tw/web/javascript/guide/regular_expressions/index.html b/files/zh-tw/web/javascript/guide/regular_expressions/index.html index 8f71bd3c10a5d8..eba0df321ca6a5 100644 --- a/files/zh-tw/web/javascript/guide/regular_expressions/index.html +++ b/files/zh-tw/web/javascript/guide/regular_expressions/index.html @@ -32,7 +32,7 @@正規表達模式由數個簡易字元組成,例如 /abc/
,或是由簡易字元及特殊符號組合而成,例如 /ab*c/
、/Chapter (\d+)\.\d*/ )
。最後一個範例用到了括號,這在正規表達式中用作記憶組,使用括號的匹配將會被留到後面使用,在 {{ web.link("#Using_Parenthesized_Substring_Matches", "使用帶括號的配對子字串 Using Parenthesized Substring Matches") }} 有更多解釋。
正規表達模式由數個簡易字元組成,例如 /abc/
,或是由簡易字元及特殊符號組合而成,例如 /ab*c/
、/Chapter (\d+)\.\d*/ )
。最後一個範例用到了括號,這在正規表達式中用作記憶組,使用括號的匹配將會被留到後面使用,在使用帶括號的配對子字串有更多解釋。
Parentheses around any part of the regular expression pattern causes that part of the matched substring to be remembered. Once remembered, the substring can be recalled for other use, as described in {{ web.link("#Using_parenthesized_substring_matches", "Using Parenthesized Substring Matches") }}.
+Parentheses around any part of the regular expression pattern causes that part of the matched substring to be remembered. Once remembered, the substring can be recalled for other use, as described in Using Parenthesized Substring Matches.
For example, the pattern /Chapter (\d+)\.\d*/
illustrates additional escaped and special characters and indicates that part of the pattern should be remembered. It matches precisely the characters 'Chapter ' followed by one or more numeric characters (\d
means any numeric character and +
means 1 or more times), followed by a decimal point (which in itself is a special character; preceding the decimal point with \ means the pattern must look for the literal character '.'), followed by any numeric character 0 or more times (\d
means numeric character, *
means 0 or more times). In addition, parentheses are used to remember the first matched numeric characters.
myRe
lastIndex
5