問題描述
有這么一段代碼
let name = 'XP.C'
let output = 'Hello ' + name ? name + ', how are you?' : ''
console.log(output)
我們期望的是打酉镎邸:Hello XP.C, how are you?
然而打印出來的卻是:XP.C, how are you?
Hello
不見了Q辜!
原因
在JS中锻拘,字符串連接符號(hào)+
的優(yōu)先級(jí)高于三目表達(dá)式
let output = 'Hello ' + name ? name + ', how are you?' : ''
這里將?
前面的 'Hello ' + name
作為一個(gè)整體識(shí)別為三目表達(dá)式的判斷條件了
解決方法
將三目表達(dá)式用括號(hào)括起來油吭,提高優(yōu)先級(jí)
let output = 'Hello ' + (name ? name + ', how are you?' : '')