简单又深度的理解JS逻辑运算符——与(&&)或(||)

简单又深度的理解JS逻辑运算符——与(&&)或(||)

&&就是"和" "and"
||就是"或者" "or"

抛弃你的想法,直接看demo:

	var a = 1 && 2;
	document.write(a)

输出:2

	var b = 1 && 2 && 3;
	document.write(b)

输出:3

是不是已经猜到了?再看一个

	var c = 1 && false && 3;
	document.write(c)

输出:false

【总结】:&&运算从前往后找,找不到就返回最后一个变量,找到了就返回这个变量,且后面不会再执行
(当然变量位置也可能放表达式,如 1 && 2+3返回 5,为了好理解,用"变量"统一概括。)

举例子来说,一个项目需要3个人,小张,小李,小王来做,他们代号分别为1,2,3;秘书点名,"1号","到";"2号",没人吱声,秘书不再点名,直接走了,给经理说项目false。这就是第三个demo过程。
假如秘书点名,三个人都到了,秘书就会给经理说,3号都到了,项目可以开始了。这就是第二个demo过程。

同样的,或(||)就是经理累了,想找个秘书捶背,就给秘书打电话,小张号码为空号(null),小李号码没有(undefined),小王号码没人接听(false),得出结论,都没来!
假如有一个人来了,直接就喊过去捶背了。

直接看demo:

	var a = 0 || null || "" || undefined;
	document.write(a)

输出:undefined

	var b = false || 2+3 || 2;
	document.write(b)

输出:5

【总结】:||运算从前往后找,找不到就返回最后一个变量,找到了就返回这个变量,且后面不会再执行。

【知识】为false的变量有:undefined、null、NaN、""、0、false本身,这些返回波尔类型都是false;

有一点需要强调,上面总结提到了后面不会再执行这句话,作用还是很大的。

比如: e && fun(e)当参数e不存在或者为空的时候,后面的函数就不会执行!
又比如:var c = a || bc默认等于a,只有a为false时,才会选择b

在实际开发中,这都是实用的小技巧。

【注意】在C语言中,只会返回波尔型(true\ false)不会是具体结果。

posted @ 2020-04-01 09:14  路灯博客  阅读(1394)  评论(0编辑  收藏  举报