このツールが役に立ったら、開発者にコーヒーを奢ってください ☕
快速查看JavaScript运算符优先级与结合性,避免运算逻辑错误
( )グループ化結合性なし用括号显式改变表达式求值顺序,括号内先计算。
(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合体左結合左侧为 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)
JSONをJavaScriptクラスに変換
JSONデータをES6のJavaScriptクラスコードに変換し、ネストされたクラスやコンストラクタを自動生成して、フロントエンド開発の効率を向上させます。

JavaScript事件表
前端开发者快速查阅JS事件名称、分类及浏览器兼容性参考的在线手册。
JavaScript代码混淆器
对JavaScript代码进行混淆,隐藏原始逻辑,防止代码被逆向修改。
C#运算符执行顺序对照表
快速查询C#运算符优先级与结合性对照表

JavaScript 正規表現テスト
JavaScriptの正規表現をリアルタイムでテスト・デバッグし、マッチ結果、キャプチャグループ、インデックス情報を提供します。
在编写复杂 JavaScript 表达式时,不同运算符的优先级常常导致意料之外的计算结果。本工具直接解决运算符优先级不明的问题,通过输入任意的 JS 运算符符号或名称,即时返回该运算符的优先级级别、结合性以及简要说明,帮助开发者准确预判表达式运算顺序。
+、*、&& 或 ===。&&,输出:优先级 6,左结合,逻辑与运算符。.、[] 以及带参数列表的 new、函数调用 () 优先级最高,级别为 20,且均为左结合。a - b + c 等价于 (a - b) + c;赋值运算符是右结合,a = b = 5 等价于 a = (b = 5)。仅支持输入标准的 JavaScript 运算符符号,不支持自定义运算符或非运算符字符;结果基于最新 ECMAScript 规范,但不同宿主或极早期引擎可能略有差异,建议以实际运行环境为准;本工具纯前端运算,不会记录或上传您的任何输入内容。
在阅读或编写复杂表达式时,推荐优先使用括号()明确意图,即使优先级已知,括号也能大幅提升代码可读性和可维护性。以下是常见的优先级速记:乘性运算符(* / %,级别14)高于加性运算符(+ -,级别13);比较运算符(< <= > >=,级别11)高于相等运算符(== != === !==,级别10);逻辑与&&(级别6)高于逻辑或||(级别5)。在条件判断与类型检测中,如需组合多种运算符,随时使用本工具快速核对,可有效避免因优先级误解而产生的逻辑错误。