我最近遇到這個問題,並認爲它會產生一個很好的SO問題。JavaScript語法:字符串賦值語句中的內聯If
假設你正在給一個局部變量賦值一個字符串,並且你想通過一個簡單的條件來改變它。所以你插入的if語句內嵌到字符串:
var someCondition = true;
var url = "beginning-" + (someCondition)?('middle'):('other_middle') + "-end";
但是,這並不如預期,URL的值將是「中等」,沒有開始,中端。此聲明產生預期結果:
var url = "beginning-" + ((someCondition)?('middle'):('other_middle')) + "-end";
最好的解釋,爲什麼這是贏得令人垂涎的答案標誌!
這被稱爲**三元操作符**。以下鏈接提供了運營商優先權的詳細說明:http://blog.stchur.com/2006/07/14/the-javascript-ternary-operator/ – 2009-11-18 23:56:43