文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaScript短路运算的实现

2024-04-02 19:55

关注

由来

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

&& 和 || 也叫短路

注意

注意:假值有以下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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯