我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript短路运算的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript短路运算的实现

由来

  • 讲一下本篇的由来:
  • 刚刚启一个带有子服务的主服务:base项目上的代码,诉求是这样子的:子服务-端口号:8599需要从主服务-端口号:8001登录进入。主服务base有一个判断工作空间的配置,其他子服务无工作空间的业务,只有子服务-:8599有。正常情况下判断一下当前服务的routeBase,再合并一下基础配置:比如setting设置,lang语言,message子服务订阅的主服务的消息等等,和当前子服务的定制化设置,就实现了不同子服务的不同服务设置。
  • 但是我启动了好多次,启起来的总是主服务的base项目,启动不起来子服务-:8599brose

(先说一下:最后解决竟是因为缓存的原因,可把本猿搞得哭笑不得。但是这期间我竟对短路运算符起了疑心并做了修改的尝试,我也真是醉了,服了自己。那好吧,想着虽然短路运算那么常见,简单,却害的本猿调试怀疑了一会,这不行,我必须写一下)

  • 最后在后面附上导致本猿调试半天的代码
  • 好了,先讲一下干干的知识点

&& 和 || 也叫短路

  • 短路&&: 只要碰到了假值(false),就会短路,并返回该假值, 只要短路,不会继续执行后面的表达式。
  • 短路||: 只要碰到了真值(true),就会短路,并返回该真值, 只要短路,不会继续执行后面的表达式。(一般用作默认值)

注意

注意:假值有以下6个: null undefined NaN false 0 ''

场景代码

&&

  console.log('abc' && null);  // null
  console.log(null && 'abc');  // null
  console.log(null && undefined);  // null
  console.log(undefined && null);  // undefined

||

  console.log(true || false);  // true
  console.log(NaN || 1);  // 1
  console.log('abc' || 123);  // ‘abc'
  console.log(0 || '');  // ''
  console.log('' || '_brose_'); //'_brose_' 

真值短路,短路或 || 经常用来设置函数参数的默认值

function add(a, b) {
      // 真值短路
      // 短路或 || 经常用来设置函数参数的默认值
      a = a || 0;
      b = b || 0;
      console.log(a + b);
    }

    add(); // 0
    add(1); // 1
    add(1, 2); // 3
    add(100, 200); // 300

发生这次记录的项目代码



import config  from './config' 

const projectName = config.routeBase || '_brose_'
const common = {
  setting: true,
  lang:true,
  message: true
}

const setting: Record<string, any> = {
  '_brose_': {
    workSpace: true,
    lang: false
  },
  '_pf_': {},
}

export default projectName ? Object.assign(setting[projectName], common) : common
  • 就是这句话,这么肯定的一句话:

(由于我是在主服务base上自己的分支本地开发跨域测试,所以在config.routeBase 的后面加了一个短路运算 || 'brose',为了本地跨域进入开发环境的_brose_:即本案例的子服务-端口号:8599, || 'brose'并不会发到生产)

const projectName = config.routeBase || '_brose_'

这段代码应该,而且在我本地跨域进入开发环境的_brose_子项目运行结果实际也是:

console.log('' || '_brose_'); //'_brose_' 

在我本地开发分支的情况下,config.routeBase 值为空,也就是运算符的左半边为空,即假值是空 '' ,那么|| 就会取表达式后面的值即 'brose' 所以,这段代码毋庸置疑。我却去怀疑为什么没有启动'brose',是因为这段代码没生效。结果竟然却是我上上次的浏览缓存还在base ,没有清除缓存。所以在来回切换环境,一定要清除缓存,有空研究一下,怎么能迅速正确的清理完缓存,我目前就是用浏览器自带的:清空缓存并硬性重新加载。小伙伴们也有这种清缓存造成的烦恼,有什么好的方法,可以评论分享给我哇。

结尾

到此这篇关于JavaScript 短路运算的实现的文章就介绍到这了,更多相关JavaScript 短路运算内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript短路运算的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaScript如何实现短路

这篇文章主要介绍了JavaScript如何实现短路,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。短路Javascript 里的逻辑运算符与(&&)可以产生短路,例如conso
2023-06-27

php逻辑运算符的短路运算是什么

这篇文章主要介绍php逻辑运算符的短路运算是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如果参与逻辑运算的表达式,第一个式子就能决定整个逻辑表达式的结果,那么就不会去算第二个式子的值,这个就是短路运算。什么是&
2023-06-14

JavaScript如何实现条件短路

这篇文章主要为大家展示了“JavaScript如何实现条件短路”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何实现条件短路”这篇文章吧。条件短路我们有以下代码:if (hu
2023-06-27

Java实现Floyd算法求最短路径

本文实例为大家分享了Java实现Floyd算法求最短路径的具体代码,供大家参考,具体内容如下import java.io.FileInputStream; import java.io.FileNotFoundException; impo
2023-05-30

java实现最短路径算法之Dijkstra算法的示例

这篇文章主要介绍了java实现最短路径算法之Dijkstra算法的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、知识准备:1、表示图的数据结构用于存储图的数据结构有多
2023-05-31

java中有哪些短路逻辑运算符

本篇文章给大家分享的是有关java中有哪些短路逻辑运算符,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java可以用来干什么Java主要应用于:1. web开发;2. Andr
2023-06-14

C++最短路径Dijkstra算法如何实现

这篇文章主要介绍“C++最短路径Dijkstra算法如何实现”,在日常操作中,相信很多人在C++最短路径Dijkstra算法如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++最短路径Dijkstra
2023-07-05

JavaScript如何实现指数运算

小编给大家分享一下JavaScript如何实现指数运算,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!指数运算能省则省,低碳环保。//longhand Math.p
2023-06-27

C#图表算法之最短路径怎么实现

本篇内容主要讲解“C#图表算法之最短路径怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#图表算法之最短路径怎么实现”吧!从一个顶点到达另一个顶点的成本最小的路径。我们采用一个一般性的模
2023-06-30

如何理解Python中 and 和 or 运算短路逻辑

本篇文章为大家展示了如何理解Python中 and 和 or 运算短路逻辑,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。短路逻辑规则如下:表达式从左至右运算,若 or 的左侧逻辑值为 True ,则
2023-06-01

JavaScript如何实现计算器的四则运算功能

小编给大家分享一下JavaScript如何实现计算器的四则运算功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、需求 + 最终实现注:只是前端实现1. 需求需
2023-06-29

编程热搜

目录