js 中 与或非 的优先级

优先级顺序: ! > && >||
项目中我们封装的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 就可以了

posted @ 2018-09-11 09:40  坚持g  阅读(5763)  评论(0编辑  收藏  举报