[JavaScriptWeird]No.14 運算子

前言

我們已經探討過型別,現在我們深入了解另一個概念「運算子」,能幫助我們除錯和了解其它可能會因為動態型別而產生的問題。

運算子 (Operator)

運算子是一個特殊的函式 (Function),不過這和我們自己寫的函式不太一樣。一般而言,運算子都需要兩個參數來回傳一個結果,來個例子:

1
2
var a = 3 + 4;  
console.log(a); // 7

這答案很簡單,但 JavaScript 是怎麼處理的呢?

語法解析器看到「+」號後就會把前後兩個數字加起來,而「+」號就是運算子,「+」是加法運算子,它是一個特殊的函式。就很類似這樣:

1
2
3
function +(a, b) {  
return //add the two
}

如果我們要呼叫這個函式,我們可能會寫

1
+(3, 4);

但是這麼做很麻煩,我們必須寫出函式的名稱,而不能直接寫個加號。

JavaScript 跟很多程式語言一樣,可以使用「中綴表示法」表是即可,意思是將函式名稱寫在兩個參數中間,讀起來簡單易懂。

運算子的本質就是,一個具有兩個參數的函式,而這個函式會回傳一個值。以這個例子來說,就是將這兩個參數相加,然後回傳 7 這個數值。

1
2
3
+3 4; //前綴表示法  
3 + 4; //中綴表示法
3 4+; //後綴表示法

比較運算子「>」

1
var a = 4 > 3; // true

大於是一個函式,「>」符號是ㄧ個運算子,這和上述的例子有點不同,它需要兩個參數,然後回傳布林值。以本例來說,左邊的 4 大於 右邊的 3 ,所以會回傳布林值 true 。

後記:

當我們輸入這些運算子像是「加、減、大於、小於」符號或其他運算子時,它們其實是特殊的函式,這些參數都被傳入這些函式中,處理後回傳一個值。在這些函式中已經寫好了一些預設的程式碼, JavaScript 讓我們利用這些運算子呼叫函式。

現在只要記著,運算子都是函式

0%