我想leanr一些JavaScript,但我不能完全回答爲什麼:控制檯日誌,如果,奇怪的行爲
var a = 'xyz';
console.log('Example: ' + (a === 'xyz') ? 'A' : 'B');
給我回「A」,而不是實例:A.然而,當我把整個如果這樣:
var a = 'xyz';
console.log('Example: ' + ((a === 'xyz') ? 'A' : 'B'));
它的工作完美無瑕。這是否意味着第一個將'Example:'字符串放在邏輯+中,並且這個if?
相當完整的答案+1。 – g00glen00b
非常好的答案。有關第一行代碼的確切答案。當使用三重等號時,它正在計算一個布爾值。因此,它尋找'(a === true)'或'(a === false)'。在這種情況下,應該使用'=='。 – Mic1780
@ Mic1780:結果是一種布爾方式。 '=='只是增加了類型強制。在OP的例子中,使用'=='和'==='之間沒有什麼區別,因爲'a'和''xyz''都是字符串。*「因此,它尋找'(a === true)'或'(a === false)'」*不,那種比較永遠不會完成。 –