优先级顺序: ! > && >||
项目中我们封装的fetch请求函数,在请求会数据时,需要判断token是否过期,是否有数据之类的,这就涉及到 && || ! 三者之间的优先级判断了,如下
fetcth()
.then(res => res.json())
.then(res => {
if(res && res.code == 401 || res.code == 500 && naviagtion){
//code...
}
})
需要判断res是否为空,且当res.code 为401 500 ,并且存在navigation的时候才执行下面的代码。
但是此刻的执行顺序是(res && res.code == 401 )和 (res.code == 500 && naviagtion ) 有一个为真就成立,造成代码运行不正常,
条件需要改为 res && (res.code == 401 || res.code == 500 )&& naviagtion 就可以了