三元運算子

就…如題啦。

一切都是因為太懶

為什麼這樣說?因為以往在定義一個變數的「布林值」的時候我會這樣寫:

1
2
var score = 60
var isPass = (score >= 60)

isPass 就會儲存 true 或 fasle。

可是如果我想儲存的是 'Pass''Fail' 就沒辦法這樣寫了。

懶就要懶到極致。

於是三元運算子登場了:

1
2
var score = 60
var message = score >= 60 ? 'Pass' : 'Fail'

以上純屬我唬爛,它應該還是有一些別的意義的,但我覺得用這種方式來理解也蠻說得通的。

可以巢,但先不要

它確實可以巢狀,但良心建議還是用在「不是 A 就是 B」的這種情況就好,不然你可能會想掐死當初寫這份 code 的傢伙:

1
2
3
var score = 100
var message = score >= 60 ? (score === 100 ? 'Perfect' : 'Pass') : 'Fail'
console.log(message) // Perfect

if ,不用嗎?

1
2
3
4
5
6
7
8
9
10
var score = 100
var message
if (score === 100) {
message = 'Perfect'
} else if (score >= 60) {
message = 'Pass'
} else {
message = 'Fail'
}
console.log(message) // Perfect
mentor-program-day07 switch case
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×