var x = -100
if(0<x<600){
console.log(x)
}
var x = -100
if(0<x&&x<600){
console.log(x)
}
运算符优先级。。。看完就明白了
上面两个程序不是一样的吗
语法 ,不符合语法的肯定不能啊,就像 var x=100 ; 可以 而 int x=100; 不可以 。由于这是没有定义的语法。那就是错误 。
至于说为什么不把 (0<x&&x<600)改为(0<x<600) ,支持这个,你可以去看编译原理 ,看语法从解析到执行 里面经过的步骤 ,你就会明白为什么不能这样写,而使用0<x&&x<600这种形式
if里面是个true或者false的表达式,如果是0<x<600,根据操作符优先级先比较两个操作数,结果是个true/false值,再进行比较,就无法比较抛错了
0<x<600
等价于(0<x)<600
==>
false<600
布尔变量和数字和比较时会有个转换,false为0,true为1
javascript计算不同数据类型如何转换
实验了一下,都可以的啊,也是按照顺序运行的~而且貌似你的var的数值也不对吧!if(0<x<600)能输出么?你明明声明的数值是负数啊!