Reputation: 16232
JSFiddle contains:
var d = " " + true ? "am" : "pm";
var e = " " + "am";
alert("|" + d + "|");
alert("|" + e + "|");
Why does d
not contain the leading space?
Upvotes: 0
Views: 38
Reputation: 303
You are trying to do same like
var d = (" " + true) ? "am" : "pm"
In your case the condition is " " + true
.
Correct condition is var d = (true ? "am" : "pm")
var d = " " + true ? "am" : "pm"; //output |am|
var d = (" " + true) ? "am" : "pm"; //output |am|
var d = " " + (true ? "am" : "pm"); //output | am|
Upvotes: 1
Reputation: 266
" " + true evaluates to boolean.. you need
var d = " " + (true ? "am" : "pm");
Upvotes: 1
Reputation: 124
The javascript order of operations is computing " " + true
before the ternary operator.
Upvotes: 1