Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的条件检查_Javascript_Jquery_Object - Fatal编程技术网

javascript中的条件检查

javascript中的条件检查,javascript,jquery,object,Javascript,Jquery,Object,这两者之间的区别是什么: !!(obj1 && obj2); 及 没有 总的来说!!用于在不使用函数调用的情况下强制转换为布尔值,类似于0^可用于强制转换为整数,+可用于强制转换为字符串等 但是,在本例中,假设它在if语句中,则没有任何区别,因为if隐式转换为布尔值,以查看它是否为真。第一个可能返回字符串或对象,第二个可能返回布尔值 因为对象在javascript中可以是truthy,所以如果是truthy,A&&B将返回B的值,这可能是一个对象。但是使用!!将其转换为布尔值,

这两者之间的区别是什么:

!!(obj1 && obj2);

没有

总的来说!!用于在不使用函数调用的情况下强制转换为布尔值,类似于0^可用于强制转换为整数,+可用于强制转换为字符串等


但是,在本例中,假设它在if语句中,则没有任何区别,因为if隐式转换为布尔值,以查看它是否为真。

第一个可能返回字符串或对象,第二个可能返回布尔值

因为对象在javascript中可以是truthy,所以如果是truthy,A&&B将返回B的值,这可能是一个对象。但是使用!!将其转换为布尔值,因为!B将把它转换为真或假,第二个!将其移动到正确的布尔值

两种方法不同的示例:

var a = "test", b ="example"
var ex1 = ((a && b)   === true)  // false
var ex2 = (!!(a && b) === true)  // true

控制台。日志'a'和'b',!!'a′&&b′-你为什么不在问之前试一下?是的,我知道,这很无聊,但是检查你自己需要10秒钟-懒散是没有的-那不是真的。你的假设太多了
var a = "test", b ="example"
var ex1 = ((a && b)   === true)  // false
var ex2 = (!!(a && b) === true)  // true