Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

本文為「JS 101:資料型別」系列第 2 篇

JavaScript 一元運算子是什麼?typeof 與二元運算子的差異

最後更新:2026年2月13日JavaScript

在前面的文章中,我們認識了各種 JavaScript 運算子,像是加減乘除這類常見的符號。

但你知道嗎?並不是所有的運算子都是符號,有些運算子其實是用「文字」來表示的。

這篇文章會介紹一個很實用的文字運算子 typeof,同時帶你搞懂「一元運算子」和「二元運算子」的差別。

用文字表示的運算子:typeof

大部分的運算子都是符號,像是 +、-、*、/。

但 typeof 是一個用英文單字表示的運算子,它的功能是:告訴你一個值的資料型態是什麼。

typeof 的運算結果會用「字串」來回傳型態名稱。

來看幾個例子:

console.log(typeof 4.5);
// → "number"

把數字 4.5 丟給 typeof,它會回傳 "number",表示這是一個數字型態。

console.log(typeof "x");
// → "string"

把 "x" 丟給 typeof,它會回傳 "string",表示這是一個字串型態。

這裡我們用了 console.log() 這個函式,目的是把程式的執行結果顯示出來,讓我們可以看到運算後的值。

關於 console.log() 的更多用法,會在下一章進一步介紹。

一元運算子 vs 二元運算子

在前一篇文章中,我們把運算子比喻成「接線生」。

接線生的工作是:拿起左邊的一條線,連結到右邊的一個插孔,讓通訊發生。

程式裡的 + 也是一樣——它把左邊的 100 和右邊的 4 拿起來,操作它們,最後產生一個結果 104。

而且我們也提到,運算子的用法很固定:放在兩個值之間,JavaScript 就會對這兩個值進行計算,然後產生一個新的值。

100 + 4    // 把左邊的 100 和右邊的 4 拿起來,做加法,產生 104
10 - 2     // 把左邊的 10 和右邊的 2 拿起來,做減法,產生 8

但現在來看 typeof 的用法:

typeof 4.5

有沒有發現不一樣的地方?

typeof 的旁邊只有一個值 4.5,不像 + 需要左右兩邊各一個值。

換句話說,+ 需要左右兩邊各給它一個值,它才有辦法工作。

但 typeof 不一樣,你只要給它一個值,它就能告訴你結果。

這就是「一元」和「二元」的差別:

  • 二元運算子(binary operator):需要兩個值來進行運算。+、-、*、/ 都是二元運算子,少給一邊它就不知道該怎麼算。
  • 一元運算子(unary operator):只需要一個值就能進行運算。typeof 就是一元運算子,給它一個值,它就能回傳這個值的型態。

一個運算子可以同時是一元和二元嗎?

答案是可以的。

-(減號)就是一個特別的例子,它可以同時扮演兩種角色。

當 - 放在兩個值之間時,它是二元運算子,執行的是「減法」:

console.log(10 - 2);
// → 8

但當 - 放在一個值的前面時,它變成了一元運算子,執行的是「取負值」:

console.log(-(10 - 2));
// → -8

這裡 10 - 2 先計算得到 8,然後前面的 - 把它變成負數 -8。

小結

  • 運算子不一定是符號,也可以是文字,例如 typeof。
  • typeof 可以告訴你一個值的資料型態,結果會用字串回傳。
  • 二元運算子需要兩個值來運算,一元運算子只需要一個值。
  • 有些運算子可以同時是一元和二元,像 - 就是一個例子。
上一篇JavaScript 運算子全解:一元、二元、三元運算子一次搞懂!
下一篇初學者指南:JavaScript 中的 a++ 和 ++a 有什麼不同?
目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

JavaScript

目錄

  • 用文字表示的運算子:typeof
  • 一元運算子 vs 二元運算子
  • 一個運算子可以同時是一元和二元嗎?
  • 小結