nic*_*ael 0 javascript if-statement
我写了这段代码:
if (10 < prompt("Enter a number from 10 to 30") < 30) {
alert("Ok");
}
Run Code Online (Sandbox Code Playgroud)
问题是它总是返回true(如果我输入任何数字).谁有人解释原因?
因为它被解析为
(10 < prompt(...)) < 30
Run Code Online (Sandbox Code Playgroud)
因为(10 < prompt(...))是一个布尔表达式,在数值上下文中转换为0或1,这是其中之一
0 < 30
Run Code Online (Sandbox Code Playgroud)
要么
1 < 30
Run Code Online (Sandbox Code Playgroud)
两者都是真的.
在javascript中没有a < b < c比较.你必须使用a < b && b < c:
var num = prompt("Enter a number from 10 to 30");
if(10<num && num<30) alert("Ok");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |