在 JavaScript 中连接 `?:` 条件字符串

Jon*_*ood 3 javascript

我在 JavaScript 中设置了一个断点,并在 Chrome 浏览器的控制台窗口中输入了以下表达式:

输入:

(((i % 12) == 0) ? '12' : (i % 12))
Run Code Online (Sandbox Code Playgroud)

结果:

9
Run Code Online (Sandbox Code Playgroud)

输入:

' ' + (i < 12) ? 'AM' : 'PM'
Run Code Online (Sandbox Code Playgroud)

结果:

"AM"
Run Code Online (Sandbox Code Playgroud)

输入:

(((i % 12) == 0) ? '12' : (i % 12)) + ' ' + (i < 12) ? 'AM' : 'PM'
Run Code Online (Sandbox Code Playgroud)

结果:

"AM"
Run Code Online (Sandbox Code Playgroud)

我的期望是最后的结果是“9AM”,这就是我想要的。这就是我输入的结果9 + "AM"。为什么它只给我“AM”?

我是在某个地方犯了一个愚蠢的错误,还是有什么超出了我对 JavaScript 内部工作原理的有限理解的地方?i只是一个for循环变量。

小智 5

将第二个三元括在括号中,它可以工作:

(((i % 12) == 0) ? '12' : (i % 12)) + ((i < 12) ? 'AM' : 'PM')
Run Code Online (Sandbox Code Playgroud)