From 6ca84f1794af830ada9736d7289ce29aabb04ca3 Mon Sep 17 00:00:00 2001 From: t7yang Date: Mon, 10 Jan 2022 08:38:05 +0800 Subject: remove `notranslate` class in zh-TW --- .../guide/expressions_and_operators/index.html | 86 +++++++++++----------- 1 file changed, 43 insertions(+), 43 deletions(-) (limited to 'files/zh-tw/web/javascript/guide/expressions_and_operators/index.html') 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 2792b5682a..c4a1dd74e6 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 @@ -28,19 +28,19 @@ translation_of: Web/JavaScript/Guide/Expressions_and_Operators

JavaScript 同時具有二元運算子及一元運算子, 以及一種特殊的 三元運算子,也就是 條件運算子。 一個二元運算子需要具備兩個運算元, 一個在運算元之前,一個在運算元之後:

-
運算元1 運算子 運算元2
+
運算元1 運算子 運算元2
 

例如, 3+4x*y.

一個 一元運算子 需要一個運算元, 位於運算子之前或之後:

-
運算子 運算元
+
運算子 運算元
 

-
運算元 運算子
+
運算元 運算子
 

例如, x++++x.

@@ -133,7 +133,7 @@ translation_of: Web/JavaScript/Guide/Expressions_and_Operators

為了進行更複雜的賦值,解構賦值是 JavaScript 用來從陣列或物件中提取資料的語法。

-
var foo = ['one', 'two', 'three'];
+
var foo = ['one', 'two', 'three'];
 
 // 不使用解構
 var one   = foo[0];
@@ -147,7 +147,7 @@ var [one, two, three] = foo;

比較運算子 會比較 運算元 並基於比較的結果回傳邏輯值。 運算元可以是數字,字串,邏輯,或物件的值。 字串的比較是基於字典序的, 使用 Unicode 的值。 在多數情況下,假如兩個運算元不具有相同型態, JavaScript 會嘗試將它們轉換成相同型態。這個行為通常是將運算元以數學形式對待。 在某些的轉換型態的例外中會使用到 ===!== 運算子, 它們會嚴格地進行相等或不相等的比較。 這些運算子不會在確認相等與否前嘗試轉換運算元的型態。 下面的表解釋了比較運算子:

-
var var1 = 3;
+
var var1 = 3;
 var var2 = 4;
 
@@ -220,7 +220,7 @@ var var2 = 4;

算術運算子 以 數值 (文字或變數也可以)作為其運算元,並回傳單一數值。最常見的算術運算元是 加法 (+),減法 (-), 乘法 (*),及除法 (/)。 這些運算子在大多數程式語言中功能相同 (比較特別的是,在除數為0時 {{jsxref("Infinity")}})。例如:

-
1 / 2; // 0.5
+
1 / 2; // 0.5
 1 / 2 == 1.0 / 2.0; // 會是 true
 
@@ -331,7 +331,7 @@ var var2 = 4;
  • 運算元被轉換為32 bits 的整數以二進位形式表示 (0 和 1)。大於 32 bits 的數字將被捨棄多出來的位元。例如, 下列整數大於32個bit但是會被轉換為32個bit的整數: -
    轉換之前:  11100110111110100000000000000110000000000001
    +  
    轉換之前:  11100110111110100000000000000110000000000001
     轉換之後:              10100000000000000110000000000001
  • 第一個運算元中的每個bit分別對應到第二個運算元的每個bit: 第一個 bit 對 第一個 bit, 第二個 bit 對 第二個 bit, 以此類推。
  • @@ -453,7 +453,7 @@ var var2 = 4;

    下面是 && (邏輯 AND) 運算子 的範例。

    -
    var a1 =  true && true;     // t && t 回傳 true
    +
    var a1 =  true && true;     // t && t 回傳 true
     var a2 =  true && false;    // t && f 回傳 false
     var a3 = false && true;     // f && t 回傳 false
     var a4 = false && (3 == 4); // f && f 回傳 false
    @@ -464,7 +464,7 @@ var a7 = "Cat" && false;    // t && f 回傳 false
     
     

    下列是 || (邏輯 OR) 運算子的範例。

    -
    var o1 =  true || true;     // t || t 回傳 true
    +
    var o1 =  true || true;     // t || t 回傳 true
     var o2 = false || true;     // f || t 回傳 true
     var o3 =  true || false;    // t || f 回傳 true
     var o4 = false || (3 == 4); // f || f 回傳 false
    @@ -475,7 +475,7 @@ var o7 = 'Cat' || false;    // t || f 回傳 Cat
     
     

    下列是 ! (邏輯 NOT) 運算子的範例。

    -
    var n1 = !true;  // !t 回傳 false
    +
    var n1 = !true;  // !t 回傳 false
     var n2 = !false; // !f 回傳 true
     var n3 = !'Cat'; // !t 回傳 false
     
    @@ -497,27 +497,27 @@ var n3 = !'Cat'; // !t 回傳 false

    例如,

    -
    console.log('我的 ' + '字串'); // 會印出 字串 "我的字串"。
    +
    console.log('我的 ' + '字串'); // 會印出 字串 "我的字串"。

    簡化的設定運算子 += 也能用於串接字串。

    例如,

    -
    var mystring = '字';
    +
    var mystring = '字';
     mystring += '母'; // 得到 "字母" 並賦與給變數 mystring.

    條件(三元)運算子

    條件運算子 是 JavaScript 中唯一需要三個運算元的運算子。 這個運算子接受兩個運算元作為值且一個運算元作為條件。 語法是:

    -
    條件 ? 值1 : 值2
    +
    條件 ? 值1 : 值2
     

    如果 條件 為 true,運算子回傳 值1, 否則回傳 值2。 你可以在任何使用標準運算子的地方改用 條件運算子。

    例如,

    -
    var status = (age >= 18) ? '成人' : '小孩';
    +
    var status = (age >= 18) ? '成人' : '小孩';
     

    這個陳述句會將 "成人" 賦與給變數 status 假如 age 大於等於18。 否則,會將 "小孩" 賦與給變數 status

    @@ -528,7 +528,7 @@ mystring += '母'; // 得到 "字母" 並賦與給變數 mystring.

    例如,假如 a 是一個有十個物件在裡面的二維陣列, 下面的程式中就使用了逗點運算子來同時更新兩個變數。 這段程式碼會印出陣列中所有對角線上的物件:

    -
    for (var i = 0, j = 9; i <= j; i++, j--)
    +
    for (var i = 0, j = 9; i <= j; i++, j--)
       console.log('a[' + i + '][' + j + ']= ' + a[i][j]);
     
    @@ -540,7 +540,7 @@ mystring += '母'; // 得到 "字母" 並賦與給變數 mystring.

    delete 運算子會刪除物件,物件的性質,或是陣列中指定 index 的物件。 語法是:

    -
    delete 物件名稱;
    +
    delete 物件名稱;
     delete 物件名稱.性質;
     delete 物件名稱[索引];
     delete 性質; // 只有在 with 陳述句中可以使用
    @@ -554,7 +554,7 @@ delete 性質; // 只有在 with 陳述句中可以使用
     
     

    假如 delete 運算子使用成功, 它會將物件 或是 物件的特性設定為 未定義。 delete 運算子會在運算成功時回傳 true ,失敗時回傳 false

    -
    x = 42;
    +
    x = 42;
     var y = 43;
     myobj = new Number();
     myobj.h = 4;    // 建立特性 h
    @@ -571,7 +571,7 @@ delete myobj;   // 回傳 true (在隱式宣告時可被刪除)
     
     

    當使用 delete 運算子刪除陣列中的一個元素後, 那個元素便不再存在於陣列中了。 在下面的程式中, trees[3] 被用 delete 移除了。然而, trees[3] 的記憶體位址仍可用並且會回傳 未定義。

    -
    var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
    +
    var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
     delete trees[3];
     if (3 in trees) {
       // 不會執行到這裡
    @@ -580,7 +580,7 @@ if (3 in trees) {
     
     

    假如你希望給予陣列元素 未定義 的值, 你可以直接使用 undefined 關鍵字而不是使用 delete 運算子。 下列範例中, trees[3] 被指定了 undefined, 然而陣列元素依然存在:

    -
    var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
    +
    var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
     trees[3] = undefined;
     if (3 in trees) {
       // 會執行這裡
    @@ -591,7 +591,7 @@ if (3 in trees) {
     
     

    typeof 運算子 能以下列任一方式使用:

    -
    typeof 運算元
    +
    typeof 運算元
     typeof (運算元)
     
    @@ -599,7 +599,7 @@ typeof (運算元)

    假設你定義了以下這些變數:

    -
    var myFun = new Function('5 + 2');
    +
    var myFun = new Function('5 + 2');
     var shape = 'round';
     var size = 1;
     var today = new Date();
    @@ -607,7 +607,7 @@ var today = new Date();
     
     

    typeof 運算子會回傳下列結果:

    -
    typeof myFun;       // 回傳 "function"
    +
    typeof myFun;       // 回傳 "function"
     typeof shape;       // 回傳 "string"
     typeof size;        // 回傳 "number"
     typeof today;       // 回傳 "object"
    @@ -616,26 +616,26 @@ typeof doesntExist; // 回傳 "undefined"
     
     

    對於 truenull關鍵字, typeof 運算子會回傳下列結果:

    -
    typeof true; // 回傳 "boolean"
    +
    typeof true; // 回傳 "boolean"
     typeof null; // 回傳 "object"
     

    對於字串或數字, typeof 運算子會回傳下列結果:

    -
    typeof 62;            // 回傳 "number"
    +
    typeof 62;            // 回傳 "number"
     typeof 'Hello world'; // 回傳 "string"
     

    對於特性,typeof 運算子會回傳 特性的值的類型:

    -
    typeof document.lastModified; // 回傳 "string"
    +
    typeof document.lastModified; // 回傳 "string"
     typeof window.length;         // 回傳 "number"
     typeof Math.LN2;              // 回傳 "number"
     

    對於 方法 及 函式, typeof 運算子會回傳下列結果:

    -
    typeof blur;        // 回傳 "function"
    +
    typeof blur;        // 回傳 "function"
     typeof eval;        // 回傳 "function"
     typeof parseInt;    // 回傳 "function"
     typeof shape.split; // 回傳 "function"
    @@ -643,7 +643,7 @@ typeof shape.split; // 回傳 "function"
     
     

    對於內建定義的物件, typeof 運算子會回傳下列結果:

    -
    typeof Date;     // 回傳 "function"
    +
    typeof Date;     // 回傳 "function"
     typeof Function; // 回傳 "function"
     typeof Math;     // 回傳 "object"
     typeof Option;   // 回傳 "function"
    @@ -654,7 +654,7 @@ typeof String;   // 回傳 "function"
     
     

    void 運算子 能以下列任一方式使用:

    -
    void (運算式)
    +
    void (運算式)
     void 運算式
     
    @@ -664,12 +664,12 @@ void 運算式

    下列範例是一個在點擊時甚麼都不做的超連結。 當使用者點擊連結時, void(0) 被解析為 未定義, 而甚麼都不會發生。

    -
    <a href="javascript:void(0)">點擊這裡,甚麼都不會發生</a>
    +
    <a href="javascript:void(0)">點擊這裡,甚麼都不會發生</a>
     

    下列範例是一個在使用者點擊時傳送表單的超連結。

    -
    <a href="javascript:void(document.form.submit())">
    +
    <a href="javascript:void(document.form.submit())">
     點擊以送出</a>

    關係運算子

    @@ -680,14 +680,14 @@ void 運算式

    in 運算子 在指定性質存在於物件中時回傳 true 。 語法是:

    -
    性質名稱 in 物件名稱
    +
    性質名稱 in 物件名稱
     

    性質名稱 可以是 字串或數字,或是陣列的索引, 且 物件名稱 是物件的名稱。

    下列範例示範了 in 運算子的一些用法。

    -
    // 陣列
    +
    // 陣列
     var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
     0 in trees;        // 回傳 true
     3 in trees;        // 回傳 true
    @@ -711,7 +711,7 @@ var mycar = { make: 'Honda', model: 'Accord', year: 1998 };
     
     

    instanceof 運算子 在 指定物件 具有 指定的物件型態 時回傳 true。 語法是:

    -
    物件名稱 instanceof 物件類型
    +
    物件名稱 instanceof 物件類型
     

    物件名稱 是用來與 物件類型 比較的物件的名字, 物件類型 是物件的類型, 例如 {{jsxref("Date")}} 或 {{jsxref("Array")}}。

    @@ -720,7 +720,7 @@ var mycar = { make: 'Honda', model: 'Accord', year: 1998 };

    例如,下列程式碼使用 instanceof 來判斷變數 theDay 是不是 Date 類型的物件。 因為 theDayDate 類型的物件, 所以if 陳述中的陳述句會被執行。

    -
    var theDay = new Date(1995, 12, 17);
    +
    var theDay = new Date(1995, 12, 17);
     if (theDay instanceof Date) {
       // 會被執行的陳述
     }
    @@ -838,13 +838,13 @@ if (theDay instanceof Date) {
     
     

    this 關鍵字 能取得當前所在物件。 一般而言, this 能取得呼叫處所在的物件。 你可以使用 點 或是 中括號 來取用該物件中的特性:

    -
    this['特性名稱']
    +
    this['特性名稱']
     this.特性名稱
     

    以下定義一個叫做 validate 的函式,比較物件中特性 value 與傳入的兩變數:

    -
    function validate(obj, lowval, hival){
    +
    function validate(obj, lowval, hival){
       if ((obj.value < lowval) || (obj.value > hival))
         console.log('不可用的值!');
     }
    @@ -852,7 +852,7 @@ this.特性名稱
     
     

    你可以在表單的 onChange event handler 中呼叫 validate 函式, 並以 this 來傳入表單的元素, 範例如下:

    -
    <p>請輸入一介於18 與 99 的數字:</p>
    +
    <p>請輸入一介於18 與 99 的數字:</p>
     <input type="text" name="age" size=3 onChange="validate(this, 18, 99);">
     
    @@ -860,7 +860,7 @@ this.特性名稱

    分組運算子 ( ) 控制了運算子的優先順序。 例如,你可以覆寫先乘除,後加減的優先順序,使其變成先加減,後乘除。

    -
    var a = 1;
    +
    var a = 1;
     var b = 2;
     var c = 3;
     
    @@ -890,7 +890,7 @@ a * c + b * c // 9
     
     

    解析在許多程式語言中都存在,允許你快速地基於現存陣列產生新的陣列,例如:

    -
    [for (i of [ 1, 2, 3 ]) i*i ];
    +
    [for (i of [ 1, 2, 3 ]) i*i ];
     // [ 1, 4, 9 ]
     
     var abc = [ 'A', 'B', 'C' ];
    @@ -905,14 +905,14 @@ var abc = [ 'A', 'B', 'C' ];
     
     

    你可以使用 new 運算子 來建立一個使用者自定義物件或內建物件的實例。 用法如下:

    -
    var 物件名稱 = new 物件型態([參數1, 參數2, ..., 參數N]);
    +
    var 物件名稱 = new 物件型態([參數1, 參數2, ..., 參數N]);
     

    super

    super 關鍵字 用於呼叫物件的父物件中的函式。 在使用 類別 來呼叫父類別的建構子時很實用,例如:

    -
    super([參數]); // 呼叫父物件的建構子.
    +
    super([參數]); // 呼叫父物件的建構子.
     super.父物件的函式([參數]);
     
    @@ -922,12 +922,12 @@ super.父物件的函式([參數]);

    範例: 現在你想要用已存在的一個陣列做為新的一個陣列的一部份,當字串常數不再可用而你必須使用指令式編程,也就是使用,一連串的 push, splice, concat,等等。 展開運算子能讓過程變得更加簡潔:

    -
    var parts = ['肩膀', '膝蓋'];
    +
    var parts = ['肩膀', '膝蓋'];
     var lyrics = ['頭', ...parts, '和', '腳趾'];

    相同的,展開運算子也適用於函式呼叫:

    -
    function f(x, y, z) { }
    +
    function f(x, y, z) { }
     var args = [0, 1, 2];
     f(...參數);
    -- cgit v1.2.3-54-g00ecf