请问在JS语法里直接用&&连接两个变量表示什么意思

比如:wm&&wm.evalJS("preateClear()");
这行代码的结果表示什么

你好,JS中的&&表示逻辑与。例如:

var a = true && false;  //&&是逻辑与,所以a的值是false
var b = true || false; // ||是逻辑或,所以b是true
var c  = a && b;  //因为变量a是true,变量b是false,所以 a与b 就是false

的例子都给出了,如果你不知道与、或、非的逻辑运算规则,建议参考高中数学的逻辑数学那部分,好像是高三学的。

在你的代码中,就是把wm的值和wm.evalJS("preateClear()")的值做逻辑与运算,返回true或false。

请问明白了吗?如还有疑惑,欢迎追问。

追问

我举的那个例子里面没有等号,只有一个逻辑与,这一行表达什么结果呢

追答

如果没有等号,就表示没有把返回的值赋给其他变量而已,其运算结果是不变的。

如果你的意思是要问这行代码在实际中的作用,和运算结果,那我真无法回答你,它既然是代码,那么运算结果就是根据具体运行的环境来判断的,仅仅这一行代码没有实际意义,无法推测运算结果。

追问

我是想问一行代码就是true或者false有什么意义
比如a=1+1;
我们知道是给a赋值为2
而一行代码直接就是1+1,有什么意义呢

追答

直接 1+1 这样的代码是无意义的。在《Javascript权威指南》中称作“没有副作用的语句”。
在你的提问中也是一样,如果a&&b的结果不用来赋值也不用在条件语句,那它仅返回的true和false是没有“副作用”的,也就是没有意义。

追问

我最近读的代码里经常出现类似的案例

如果都认为无意义我觉得作者没必要这么写

比如:

让人很费解啊

追答

原来完整的代码是这样。那我知道了,原理是这样的:

1、在逻辑与(&&)运算中,只要有一个值是false,那这个运算的结果就必然是false

2、而根据javascript的规则,只要第一个变量(左操作数)的值是false,那么就会直接终止这个运算,返回false。也就是说右边的表达式就不会生效了。

3、在你的代码中就是:如果waiting的值是假(包括null和undefined),就不会执行右边的表达式。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-13
aa && bb的写法
短路作用,一般表示aa满足true去执行bb的函数
相似回答