扫码关注官方订阅号
if(A && (B!=C))请问是不是先判断B!=C,然后才去判断A?
如果改成if( (A) && (B!=C) )那是不是就是先判断A,然后才判断B!=C?
如果改成if(A && B != C)那是不是先判断B!=C然后才判断A?
ringa_lee
这个加不加括号和执行顺序无关.
var a = function(){ console.log(1); return true; },b = function(){ console.log(2); return true; }; if(a() && (b())){ console.log('YES') }
不才,献丑了
不是。先判断A,你说的优先级问题只的是:A && (B!=C)时,不会是A && B 算完了再 !=C
另外 ||是短路运算,即A || B,如果A为true,则根本不会计算B是什么值。
if(A && (B!=C))请问是不是先判断B!=C,然后才去判断A? 不是
如果改成if( (A) && (B!=C) )那是不是就是先判断A,然后才判断B!=C? 不改也是先A
如果改成if(A && B != C)那是不是先判断B!=C然后才判断A? 先A
你要知道&和&&,以及|与||的区别,&&和||会有截断的机制,类似与短路,当||中第一个为true时后面的都不判断直接返回true,而&&中第一个为false时后面的也不判断直接返回false,知道了这个,上面你问的问题自己想想其实就没有意义了。。。
刚才手抖敲反了,不好意思!!!
if(A && (B!=C))
&&运算符从左往右计算,有短路功能如前面1个操作数为true,不执行后面的表达式否者后面的表达式将被执行,转成boolean值再判断
例如
var a=10; var b=0; var c=10; if(b&&(a!=c?a=0:a=-1)){ console.log('TRUE'); }else{ console.log('FALSE'); } console.log(a); 输出结果为FALSE,10 ()表达式不会被执行
var a=10; var b=1; var c=10; if(b&&(a!=c?a=0:a=-1)){ console.log('TRUE'); }else{ console.log('FALSE'); } console.log(a); 输出结果为TRUE,-1 ()中的表达式被执行
A && (B!=C)依然是先计算A 如果Boolean(A)的结果为false,则遵从短路原则,直接返回A的值而不会再计算 B!=C的结果
肯定是先判断A
短路原理, 从左至右判断 遇到括号就把括号中的内容当做整体再判断
这种问题我想应该只会出现在某些大学考试的试卷里。
实际开发根本不会操心这个,毕竟执行结果都一样。
所以,这应该是个学术问题,而不是技术问题。已经超出我们大部分人的能力了,哈哈。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
这个加不加括号和执行顺序无关.
不才,献丑了
不是。先判断A,你说的优先级问题只的是:A && (B!=C)时,不会是A && B 算完了再 !=C
另外 ||是短路运算,即A || B,如果A为true,则根本不会计算B是什么值。
if(A && (B!=C))
请问是不是先判断B!=C,然后才去判断A? 不是
如果改成if( (A) && (B!=C) )
那是不是就是先判断A,然后才判断B!=C? 不改也是先A
如果改成if(A && B != C)
那是不是先判断B!=C然后才判断A? 先A
你要知道&和&&,以及|与||的区别,&&和||会有截断的机制,类似与短路,当||中第一个为true时后面的都不判断直接返回true,而&&中第一个为false时后面的也不判断直接返回false,知道了这个,上面你问的问题自己想想其实就没有意义了。。。
刚才手抖敲反了,不好意思!!!
&&运算符从左往右计算,有短路功能
如前面1个操作数为true,不执行后面的表达式
否者后面的表达式将被执行,转成boolean值再判断
例如
A && (B!=C)
依然是先计算A 如果Boolean(A)的结果为false,则遵从短路原则,直接返回A的值而不会再计算 B!=C的结果
肯定是先判断A
短路原理, 从左至右判断 遇到括号就把括号中的内容当做整体再判断
这种问题我想应该只会出现在某些大学考试的试卷里。
实际开发根本不会操心这个,毕竟执行结果都一样。
所以,这应该是个学术问题,而不是技术问题。已经超出我们大部分人的能力了,哈哈。