運算子與運算元


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

JSDC 2020 開發者年會參與心得分享

JSDC 2020 開發者年會參與心得分享

SQL Excel Concatenate into INSERT Command

SQL Excel Concatenate into INSERT Command

CSS 語法架構 (Cascading Style Sheets)

CSS 語法架構 (Cascading Style Sheets)


Comments