Shi*_*hir -1 javascript string conditional-statements
var str1 = "string1" + (false)?"string2":"string3"; // output: string2
var str2 = "string1" + (true)?"string2":"string3"; // output: string2
Run Code Online (Sandbox Code Playgroud)
为什么这些表达式在条件中无论真/假都评估为"string2"?
"string1"和"string3"会发生什么?这些表达式究竟是如何评估的?
因为?优先级低于+
"string1" + (false)?"string2":"string3"
Run Code Online (Sandbox Code Playgroud)
相当于说:
("string1" + false) ? "string2" : "string3"
Run Code Online (Sandbox Code Playgroud)
"string1" + false求值为"string1false"truthy 的字符串值(Thanks @Vache)
要让它以您想要的方式工作,请在三元表达式周围添加大括号.
"string1" + (false ? "string2" : "string3")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |