工具用的順手嗎?
你的回饋能幫助我們做得更好
快速檢視JavaScript運算子優先順序與結合性,避免運算邏輯錯誤
數字越小優先順序越高;此表是常見語法分組參考。?? 與 || 同級,但不能不加括號與 ||/&& 混用;優先順序不能代替 ECMAScript 的語法限制。 參考來源
( )分組表示式無結合性用括號顯式改變表示式求值順序,括號內先計算。
(a + b) * c.成員與呼叫左結合訪問物件的命名屬性。
user.name[]成員與呼叫左結合用表示式結果作為屬性名或陣列索引。
items[index]?.成員與呼叫左結合物件為空值時短路返回 undefined,避免繼續訪問時報錯。
user.profile?.email()成員與呼叫左結合呼叫函式、方法或可呼叫表示式。
format(value)new ...()成員與呼叫左結合建立建構函式例項,並傳入引數列表。
new Date(2026, 0, 1)new物件建立右結合建立建構函式例項;省略呼叫括號時優先順序低於成員訪問和函式呼叫。
new Datex++後置運算無結合性返回變數當前值,然後將變數加 1。
count++x--後置運算無結合性返回變數當前值,然後將變數減 1。
count--++x一元運算右結合先將變數加 1,再返回新值。
++count--x一元運算右結合先將變數減 1,再返回新值。
--count!一元運算右結合將值轉換為布林值後取反。
!isReady~一元運算右結合將運算元轉為 32 位整數後逐位取反。
~mask+x一元運算右結合嘗試將運算元轉換為數字。
+inputValue-x一元運算右結合將運算元轉換為數字後取相反數。
-pricetypeof一元運算右結合返回運算元型別的字串描述。
typeof valuevoid一元運算右結合計算表示式並返回 undefined。
void fn()delete一元運算右結合刪除物件上的可配置屬性。
delete user.tempawait一元運算右結合在 async 函式或模組頂層等待 Promise 結果。
await fetchData()**冪運算右結合計算左運算元的右運算元次冪;左側不能直接是一元表示式。
2 ** 3 ** 2*乘除取餘左結合兩個數值相乘。
width * height/乘除取餘左結合左運算元除以右運算元。
total / count%乘除取餘左結合返回除法後的餘數。
index % 2+加減連線左結合數值相加;任一運算元為字串時通常執行字串連線。
firstName + lastName-加減連線左結合兩個數值相減。
end - start<<位移運算左結合將 32 位整數按位左移。
1 << bit>>位移運算左結合保留符號位進行右移。
value >> 1>>>位移運算左結合高位補 0 進行右移。
value >>> 1<關係判斷左結合比較左運算元是否小於右運算元。
age < 18<=關係判斷左結合比較左運算元是否小於或等於右運算元。
score <= 100>關係判斷左結合比較左運算元是否大於右運算元。
price > limit>=關係判斷左結合比較左運算元是否大於或等於右運算元。
count >= minin關係判斷左結合判斷指定屬性名是否存在於物件或其原型鏈中。
"name" in userinstanceof關係判斷左結合判斷物件是否出現在建構函式的原型鏈上。
value instanceof Date==相等判斷左結合允許型別轉換後比較兩個值是否相等。
value == null!=相等判斷左結合允許型別轉換後比較兩個值是否不相等。
value != 0===相等判斷左結合不進行型別轉換,比較型別和值是否都相同。
status === "ok"!==相等判斷左結合不進行型別轉換,判斷型別或值是否不同。
status !== "ok"&按位運算左結合兩個 32 位整數逐位執行與運算。
flags & enabled^按位運算左結合兩個 32 位整數逐位執行異或運算。
flags ^ mask|按位運算左結合兩個 32 位整數逐位執行或運算。
flags | selected&&邏輯運算左結合左側為假值時短路返回左側,否則返回右側。
user && user.name||邏輯運算左結合左側為真值時短路返回左側,否則返回右側。
name || "匿名"??空值合併左結合左側為 null 或 undefined 時返回右側;與 &&、|| 混用時需要加括號。
count ?? 0?:條件運算右結合根據條件表示式結果在兩個分支表示式中選擇一個。
score >= 60 ? "通过" : "未通过"=賦值與函式右結合將右側表示式結果賦給左側引用。
total = 0+=賦值與函式右結合等價於把當前值與右側值相加後再賦回。
total += price-=賦值與函式右結合等價於把當前值減去右側值後再賦回。
count -= 1*=賦值與函式右結合等價於把當前值乘以右側值後再賦回。
size *= 2/=賦值與函式右結合等價於把當前值除以右側值後再賦回。
size /= 2%=賦值與函式右結合等價於把當前值取餘後再賦回。
index %= length**=賦值與函式右結合等價於對當前值執行冪運算後再賦回。
value **= 2<<=賦值與函式右結合等價於左移後再賦回。
mask <<= 1>>=賦值與函式右結合等價於有符號右移後再賦回。
mask >>= 1>>>=賦值與函式右結合等價於無符號右移後再賦回。
mask >>>= 1&=賦值與函式右結合等價於按位與後再賦回。
flags &= mask^=賦值與函式右結合等價於按位異或後再賦回。
flags ^= mask|=賦值與函式右結合等價於按位或後再賦回。
flags |= mask&&=賦值與函式右結合左側為真值時,才將右側結果賦給左側。
enabled &&= isAdmin||=賦值與函式右結合左側為假值時,才將右側結果賦給左側。
title ||= "未命名"??=賦值與函式右結合左側為 null 或 undefined 時,才將右側結果賦給左側。
options.timeout ??= 3000=>賦值與函式右結合定義箭頭函式表示式。
(x) => x * 2yield賦值與函式右結合在生成器函式中暫停執行併產出一個值。
yield valueyield*賦值與函式右結合把產出過程委託給另一個可迭代物件。
yield* list,逗號運算左結合從左到右依次求值,整個表示式結果為最後一個表示式。
(x += 1, x * 2)概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
這個查詢器會依關鍵字、運算子分類與結合性篩選 JavaScript 運算子條目。每筆結果提供符號、名稱、分類、結合性、簡述與程式範例,也可分別複製符號或範例。它適合快速查表,例如查 ===、?? 或 typeof;輸入欄是目錄搜尋,不會剖析或執行你貼上的完整程式碼。
優先序描述語法如何把運算子分組;優先序較高的部分會先成為較低優先序運算子的運算元。以 a + b * c 為例,乘法優先於加法,因此分組是 a + (b * c)。當相鄰運算子優先序相同,才需看結合性:左結合可寫成 a - b + c → (a - b) + c;右結合的賦值可寫成 a = b = 5 → a = (b = 5)。分組不等於每個運算元實際執行的先後,也不代表程式的最終值。
結果中的 level 是本目錄用來排序及分組的本地編號,數字越小代表本目錄標示的優先序越高。它不是 ECMAScript 的固定標準編號;例如 MDN 的參考表使用由 19 到 1 表示由高至低,請勿直接對照兩套數字。判斷細節時可參考下方官方資料。
指南
依步驟完成操作,並透過範例核對輸入與結果。
可搜尋符號、名稱、說明、範例文字或結果顯示的 level。輸入 ??、strict 或 16 都會依條目文字比對;部分字詞也可用。
分類可用來只看算術、比較、邏輯、賦值等範圍;結合性則可篩選左結合、右結合或無結合性。條件可以同時套用,結果會符合所有已選條件。
結果依本目錄的 level 分組,並顯示符合條件的筆數。展開條目可閱讀說明和範例;需要帶走內容時,使用該筆資料旁的複製符號或複製範例操作。
若沒有結果,先清除關鍵字,再把分類與結合性還原為全部,確認是不是篩選條件交集太窄。若查到相似符號,請比對運算子名稱和範例,不要只憑外觀判斷用途。
情境
查看這項工具在不同工作與生活流程中的用法。
看到條件式同時有比較、邏輯與或空值合併時,可分別搜尋相關符號,先確認各自的語法層級,再在原程式旁加上括號表示自己的理解。
學習者可按分類瀏覽一組運算子,對照名稱、簡述和範例;複製例子後再替換成自己的變數,在 JavaScript 執行環境中檢查結果。
團隊成員可用目錄條目作為討論起點,指出表達式中哪些部分會先結合。若括號能讓意圖更清楚,應優先採用明確寫法並測試邊界情況。
問答
集中解答常見疑問與容易混淆的問題。
不會。搜尋只篩選運算子目錄,不執行程式,也不計算表示式值。請在適當的 JavaScript 執行環境中測試完整程式。
兩者採用不同的編號方向及分組方式。此處較小的 level 代表目錄中較高的優先序;MDN 表格則以 19 表示最高、1 表示最低。需要比較時看運算子之間的相對優先序,不要把數字直接互換。
?? 可以直接和 || 或 && 混寫嗎?不能在沒有括號的情況下直接混用。若確實需要合併這些邏輯,請依預期分組加上括號,例如 (value ?? fallback) || other,並以語言規範和實際測試確認語法。
須知
使用前了解適用範圍、結果限制與必要提醒。
條目與 level 是供快速搜尋及瀏覽的整理資料,不能代替完整語言參考。少數分類或層級可能與參考表呈現方式不同;遇到空值合併、邏輯運算、條件運算或賦值的組合時,請核對官方資料,並在目標執行環境測試。
優先序和結合性說明語法分組,不足以推斷所有運算元是否會執行、執行順序、型別轉換後的值或程式邏輯是否正確。邏輯運算可能短路;即使讀懂分組,也應使用括號表達意圖,並測試涉及空值或副作用的情況。
推薦
查找相關工具、專題與可用的 API 能力。