2 m0 37285193 m0_37285193 于 2017.01.10 10:38 提问

为什么if(x>600&&x<0)会生效,而if(0<x<600)不会生效
var x = -100
 if(0<x<600){
        console.log(x)
}
var x = -100
 if(0<x&&x<600){
        console.log(x)
}

6个回答

shen_wei
shen_wei   Ds   Rxr 2017.01.10 15:20
u1254z62
u1254z62   2017.01.10 10:46

上面两个程序不是一样的吗

qq_29594393
qq_29594393   Ds   Rxr 2017.01.10 10:53

语法 ,不符合语法的肯定不能啊,就像 var x=100 ; 可以 而 int x=100; 不可以 。由于这是没有定义的语法。那就是错误 。
至于说为什么不把 (0<x&&x<600)改为(0<x<600) ,支持这个,你可以去看编译原理 ,看语法从解析到执行 里面经过的步骤 ,你就会明白为什么不能这样写,而使用0<x&&x<600这种形式

sycdzdd
sycdzdd   2017.01.10 14:12

if里面是个true或者false的表达式,如果是0<x<600,根据操作符优先级先比较两个操作数,结果是个true/false值,再进行比较,就无法比较抛错了

showbo
showbo   Ds   Rxr 2017.01.10 15:30
 0<x<600
等价于(0<x)<600
==>
false<600

布尔变量和数字和比较时会有个转换,false为0,true为1
javascript计算不同数据类型如何转换

xgy667788
xgy667788   2017.01.11 10:59

实验了一下,都可以的啊,也是按照顺序运行的~而且貌似你的var的数值也不对吧!if(0<x<600)能输出么?你明明声明的数值是负数啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!