前言
我們已經探討過型別,現在我們深入了解另一個概念「運算子」,能幫助我們除錯和了解其它可能會因為動態型別而產生的問題。
運算子 (Operator)
運算子是一個特殊的函式 (Function),不過這和我們自己寫的函式不太一樣。一般而言,運算子都需要兩個參數來回傳一個結果,來個例子:
1 | var a = 3 + 4; |
這答案很簡單,但 JavaScript 是怎麼處理的呢?
語法解析器看到「+」號後就會把前後兩個數字加起來,而「+」號就是運算子,「+」是加法運算子,它是一個特殊的函式。就很類似這樣:
1 | function +(a, b) { |
如果我們要呼叫這個函式,我們可能會寫
1 | +(3, 4); |
但是這麼做很麻煩,我們必須寫出函式的名稱,而不能直接寫個加號。
JavaScript 跟很多程式語言一樣,可以使用「中綴表示法」表是即可,意思是將函式名稱寫在兩個參數中間,讀起來簡單易懂。
運算子的本質就是,一個具有兩個參數的函式,而這個函式會回傳一個值。以這個例子來說,就是將這兩個參數相加,然後回傳 7 這個數值。
1 | +3 4; //前綴表示法 |
比較運算子「>」
1 | var a = 4 > 3; // true |
大於是一個函式,「>」符號是ㄧ個運算子,這和上述的例子有點不同,它需要兩個參數,然後回傳布林值。以本例來說,左邊的 4 大於 右邊的 3 ,所以會回傳布林值 true 。
後記:
當我們輸入這些運算子像是「加、減、大於、小於」符號或其他運算子時,它們其實是特殊的函式,這些參數都被傳入這些函式中,處理後回傳一個值。在這些函式中已經寫好了一些預設的程式碼, JavaScript 讓我們利用這些運算子呼叫函式。
現在只要記著,運算子都是函式。