spring的cron表达式不执行_你可能并不懂JavaScript逻辑运算符

94ccbcb1d23049a0720200868b08c164.png

逻辑运算符分为三种,第一个是与(&&),以及或*(||)还有非(!)他们和他们所操作的代码共同组成了逻辑表达式。

and(&&)

&&运算符有三种不同的用法和理解,最常用的是和关系运算符一块使用,将简单的大于等于这些比较表达式进行组合成为一种更复杂的表达式,当他两边相连的比较表达都是true的时候,才返回true,如果其中一个是false ,那么就返回false 。在if语句中的用法如下:

var x =1,y=2;
if (x<y && x <= y ) {
    console.log('返回ture')
} else {
    console.log('返回false')
}if (x<y && x <= y ) {
    console.log('返回ture')
} else {
    console.log('返回false')
}
$> 返回true

if判断里,两个关系表达式都成立 为true 那么执行if,

如果第六行改为:

if (x=y && x <= y ) 

那么 有一个条件不成立,所以会返回false,即执行else。这是&&的第一种用法,可以看到,他是对真假值进行的判断操作,所以得到他的第二种用法就是:

var data =[7,8,9];
if (true && data) {
    console.log('in data')
}
else{
    console.log('no in data')
}

左值是真值true 右值也是真值,那么执行后得到。

$>in data

注:假值:false null undefined 0 -0 Nan " ",其他包括经过计算的值如果为真,都是真值。

所以得出一个结论

一、&& 能进行计算,他会首先计算位于左侧的表达式或值,如果是假值,那么整个表达式返回一个假值,这个假值就是左侧表达式或值,以上几种均可。

二、而如果左侧表达式或值是真值,那么&&将依赖右侧,如果右侧是假值,那么不管左值是真是假,都是假值。如果右侧是真值,那么即真,然后进行计算或执行右侧的代码,这里有个例子:

66de15addbb12c41bd5792fa50a230c3.png

左侧表达式 a和b相等,,那么计算和执行右侧代码 ,调用stop()函数


总结:

1. 真 && 真 —— 真 ,执行计算右侧真值代码,

2.真 &&假 —— 假

3.假&&真 —— 假的假值

4.假&&假 ———假

这里可以想象成类似电路的概念,&&就像一根电线,连接的左测表达式,我们想象成电源、而右侧表达式,则想象成灯泡。


总结1可以想象为:如果电源有电(左边是真值),灯泡是好的(右值为真)那么灯牌肯定亮(true并执行右侧代码。);

总结2想象为:电源有电(左值为真值)但是灯泡是坏的,那么肯定是短路(false);

总结3想象为:电源没电,灯泡是好的,那么就告诉你电源为啥没电,是进水了,还是短路了(假的假值)。

总结4想象为:电源不知道为啥坏了,灯泡也坏了,所以短路(false)。


or(||)

||运算符和&&类似,也是做布尔运算的,如果连接的两个操作数/表达式,其中一个,或者两个都是真,那么返回真值,如果两个数都是假值,那么返回一个假值。

和&&一样 他也有一些复杂的行为。他会首先对左侧表达式进行计算,如果计算结果是真值,那么返回这个真值,如果是左侧的表达式是假值。那么计算右侧的值,并返回一个结果。

总结: 真||假 —— 真,计算真值。

真1|| 真2 ||假 ——真, 计算真1的值。

假||假 —— 假

如果把&&理解为电路的话,那么||也可以理解为电路,但是||不再是电路本身,而是两个电源、灯泡必须得亮,除非灯泡坏了,所以灯泡会自动选择任意一个好的电源。

他在程序里,一般是这样用的。

bc0c4caad54a0adda40f613025dcdf13.png

非(!)

最简单易懂的一个逻辑运算符,是一个一元运算符,也就是说,和++ 这种一元运算符一样,只对表达式进行一次操作。!的作用是求反,例如 X是真值,那么!x 是假值,这里注意,!具有很高的优先级,如果和上述&&、||一块用,应该将他们用()括起来,如:!(p&&q),这样才能生效。举个例子:

29bd0d1a9ec333aebda9f739798c446c.png

最终总结:在使用&&、||时,如果操作数是对象,函数,递增递减时,一定注意他们的值,不然执行代码,并非期望后果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值