運算子與運算元


Posted by hoyi-23 on 2021-05-19

什麼是運算子(Operator)?

運算子算是一個簡單的函式,可以透過符號或單詞來運算它前後的數值,並回傳結果。

(圖一)從右到左依序: 運算元1 運算子 運算元2
運算子的特性: 一定會回傳結果

運算元

依據運算元的數量不同,運算子會分為 一元運算子、二元運算子、三元運算子。
大部分皆是二元,少部分是一元,一個是三元。

一元運算子

一元運算子需要具備一個運算元。(運算元1 運算子/運算子 運算元1)

x++;
++x;
  1. delete 運算子會刪除物件,物件的性質,或是陣列中指定 index 的物件。
    delete 物件名稱;
    delete 物件名稱.性質;
    delete 物件名稱[索引];
    delete 性質; // 只有在 with 陳述句中可以使用,用來刪除物件中的一個特性。
    
    x = 100;
    var y = 50;
    var myArray = [1,2,3,4,5,6];
    myObject = new Number();
    myObject.n = 5;    // 建立特性 n
    delete x;       // 回傳 true (只有在隱式宣告時能被刪除)
    delete y;       // 回傳 false (在使用 var 宣告時無法刪除)
    delete Math.PI; // 回傳 false (不能刪除內建定義的特性)
    delete Object.n; // 回傳 true (可以刪除使用者自定義的特性)
    delete Object;   // 回傳 true (在隱式宣告時可被刪除)
    delete myArray[3]; // 回傳 true(但陣列的長度並不會改變,刪掉的會變empty)
    

    2.typeof
    var myFun = new Function('5 + 2');
    var shape = 'round';
    typeof myFun;       // 回傳 "function"
    typeof shape;       // 回傳 "string"
    
    3.Void
    void 運算子會解析運算式而不回傳任何值,運算式會被解析而不會在當前頁面被印出。
    <a href="javascript:void(0)">點擊這裡,甚麼都不會發生</a>
    //void(0) 被解析為 未定義, 而甚麼都不會發生。
    
    <a href="javascript:void(document.form.submit())">
    點擊以送出</a>
    
    ## 二元運算子
    一個二元運算子需要具備兩個運算元。(運算元1 運算子 運算元2)
  2. 賦值運算子(右方的運算元的值賦予其 左方的運算元)
    //賦值運算子最常見的就是"="
    x = y;
    x = 3;
    x += y;
    
  3. 比較運算子
    比較運算子會比較運算元 並基於比較的結果回傳邏輯值(true/false)。
    a == '小明';
    x === 3;
    y !== 2;
    z > 12
    
  4. 算數運算子
  5. 位元運算子
  6. 邏輯運算子
    通常被用於布林(邏輯)值; 使用於 布林(邏輯)值時, 它們會回傳布林型態的值。
    另外還有 && 、 || 、 ! ,可能會回傳一個非布林型態的值。
  7. 字串運算子
    將兩字串接在一起,並回傳接在一起後的結果。
    //常見 字串運算子 為 '+'
    console.log('Good' + 'Morning')
    //
    var string = 'Good';
    string += 'Morning'; // string = string + 'Morning';
    
  8. 逗點運算子
  9. 關係運算子
    關係運算子比較兩運算元並基於比較結果回傳布林值。
// 陣列
var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
0 in trees;        // 回傳 true
3 in trees;        // 回傳 true
6 in trees;        // 回傳 false
'bay' in trees;    // 回傳 false (你必須指定 索引,而不是 索引所對應的元素)
'length' in trees; // 回傳 true (length 是陣列的性質之一)
// 內建物件
'PI' in Math;          // 回傳 true
var myString = new String("coral");
'length' in myString;  // 回傳 true
// 自訂義物件
var mycar = { make: 'Honda', model: 'Accord', year: 1998 };
'make' in mycar;  // 回傳 true
'model' in mycar; // 回傳 true

三元運算子

  1. 條件運算子
    JavaScript 中唯一需要三個運算元的運算子。
    //基本樣式
    條件 ? 值1 : 值2
    //解釋: 若符合條件(true),回傳值1,否則回傳值2
    var status = (age>18) ? 'Adult' : 'Kid';
    

範例

範例一:

var a;
a = 1 + 1;

這個範例包含兩個運算子 '+' '='

/運算過程
1 + 1; //2
a = 2 //2

範例二:

//三元運算子
var BMI = 18;
var b = (BMI <= 20) ? 'Skinny':'chubby'; 
console.log(b)//"Skinny"

#運算子 #運算元







Related Posts

Cmder 更改 lambda λ 符號

Cmder 更改 lambda λ 符號

不可不知的小工具-REST Client

不可不知的小工具-REST Client

[JavaScript] 操控 DOM 元素

[JavaScript] 操控 DOM 元素


Comments