首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JSP 模板字符串拼接三元運算符優先級陷阱:括號修正指南

     編輯:程式設計疑難解答

錯誤代碼


'<option value="FF" ' + tmconfig["rvaltype"] == 'FV' ? 'selected' : '' + '>公式</option>'

輸出:>公式</option>(前半部分丟失)。

原因:運算符優先級

JS/Java 中 + 優先級 **高於** == 和 ?:。
實際解析順序:
1. '<option value="FF" ' + tmconfig["rvaltype"] → 字符串拼接
2. 結果 == 'FV' → boolean
3. boolean ? 'selected' : '' → 'selected' 或 ''
4. 結果 + '>公式</option>' → 最終字符串
**導致前綴字符串參與了比較,邏輯完全錯亂。**

修正:括號明確分組


'<option value="FF" ' + (tmconfig["rvaltype"] == "FV" ? "selected" : "") + '>公式</option>'

執行順序:
1. (tmconfig["rvaltype"] == "FV" ? "selected" : "") → 先算三元表達式
2. 左右兩側 + 拼接 → 完整 option 標簽

最佳實踐:模板字面量 (ES6) / 模板引擎


// ES6 模板字面量(推薦,可讀性最高)
``

// 或使用成熟模板引擎:Handlebars, EJS, Thymeleaf (Java), FreeMarker

避坑口訣

**字符串拼接含三元/邏輯判斷時,三元表達式必須用括號包裹**;長字符串拼接優先用模板字面量/模板引擎,消除優先級陷阱、提升可讀性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved