首页 > 编程语言 >小程序性能优化之JavaScript代码优化

小程序性能优化之JavaScript代码优化

时间:2023-11-10 15:04:25浏览次数:47  
标签:局部变量 快快 JavaScript 代码优化 需要 使用 全局 全局变量 优化

大家好,今天我们来聊一聊小程序性能优化中的JavaScript代码优化。在编程过程中,我们都喜欢轻松愉快,不想戴着沉重的“全局疯狂”帽子。但有时候,过度使用全局变量会让我们的程序变得难以维护,就像在一片大森林里找寻一个小木屋。这时候,我们就需要考虑一下,是不是该减轻一下我们的“全局疯狂症”了?

先给大家讲一个故事。有一个小程序叫“快快”,它有一个超级大的全局变量叫做“全局宝”,里面存放着所有的数据和配置。每当“快快”需要一些数据或者配置,它就会从“全局宝”里面去取。刚开始的时候,一切都很美好,但随着“快快”的功能越来越多,数据和配置也越来越多,“全局宝”变得越来越庞大。有一天,程序运行的速度突然慢了下来,就像一只蜗牛在爬。

“快快”的开发者很困惑,不知道发生了什么,于是他们找到了一些专家,希望能够找到问题的根源。专家们看了看“快快”的代码,然后告诉它:“‘快快’,你的问题出在你的‘全局宝’上。每次你都需要从‘全局宝’里面去取数据和配置,这样就会导致你的程序在运行的时候需要花费大量的时间去寻找和解析这些数据和配置。这就是你的程序运行慢的原因。”

“快快”听了专家的话,恍然大悟。它决定要改掉这个坏习惯,不再过度依赖“全局宝”。它开始把一些常用的数据和配置分解出来,分别放在不同的地方,这样每次需要取数据或者配置的时候,它就可以直接从对应的地方去取,而不需要再去找“全局宝”。

经过这样的优化,“快快”的程序运行速度又恢复到了之前的水平。它很开心,终于明白了过度使用全局变量带来的问题。

那么如何避免过度使用全局变量呢?

  1. 将常用数据或配置分解出来,分别放在合适的地方。这样在需要获取数据或配置时,可以直接从对应的地方获取,而不需要从全局变量中查找。比如我们有一个全局变量globalData存储了很多数据,但在实际使用时,我们只需要其中一个值a,那么我们可以将a赋值给一个新的局部变量localA,在需要使用a的地方直接使用localA
  2. 使用局部变量代替全局变量。局部变量的作用域更小,访问速度更快。如果一个变量只在一个函数或模块中使用,那么就没有必要将其定义为全局变量。比如我们有一个全局变量globalVar存储了一个字符串"hello world",但在某个函数中我们只需要使用这个字符串,那么我们可以将这个字符串赋值给一个新的局部变量localVar,在需要使用这个字符串的函数中使用localVar
  3. 使用缓存来存储经常使用的数据或配置。这样可以减少重复获取数据的开销。比如我们在一个循环中多次计算同一个值sum,那么我们可以将这个值缓存起来,避免重复计算。
  4. 尽量避免在循环或大量计算中使用全局变量。因为这会使得程序在运行时需要反复访问全局变量,从而降低程序的运行效率。比如我们在一个循环中使用了一个全局变量globalVar存储了一个数字10,那么每次循环都需要访问这个全局变量,导致效率低下。如果这个数字只在这个循环中使用,那么我们可以将这个数字赋值给一个新的局部变量localVar,在循环中使用这个局部变量。
  5. 在必要的情况下再使用全局变量。在一些大型项目中,为了避免重复造轮子或者提高代码的可重用性,适当使用全局变量是有必要的。但是在普通项目中,应该尽可能地避免过度使用全局变量。

标签:局部变量,快快,JavaScript,代码优化,需要,使用,全局,全局变量,优化
From: https://blog.51cto.com/u_16193759/8299436

相关文章

  • 腾讯云V265/TXAV1直播场景下的编码优化和应用
     //  编者按:随着视频直播不断向着超高清、低延时、高码率的方向发展,AppleVision的出现又进一步拓展了对3D,8K120FPS的视频编码需求,视频的编码优化也变得越来越具有挑战性。LiveVideoStackCon2023上海站邀请到腾讯云的姜骜杰老师分享腾讯云V265/TXAV1直播场景下的编码优化......
  • JavaScript的BOM和document编程方法汇总和实例-----前端
    //总结浏览器往服务器发请求          //表单,超链接          //document.location文本重定向          //window.location窗口重定向          //window.open()请求地址       ......
  • min25筛的常数优化&“多记一维”的艺术
    前置知识:min25筛,即你要用min25筛通过板子题,不管写成啥样,不管常数多大,但是你要了解一点min25。没有特殊说明的话有如下记号(大部分记号与oi-wiki一致):\(x/y=\lfloor\frac{x}{y}\rfloor\)\(\text{P}\)为素数集合,\(p_k\)表示第\(k\)小素数。特别地,令\(p_{0}=1\)。\(\t......
  • 【教你通透ELK】Kibana 性能优化
    鱼弦:内容合伙人、新星导师、全栈领域创作新星创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen) Kibana性能优化原理Kibana性能优化的原理主要涉及以下几个方面:数据存储:Kibana使用Elasticsearch作为数据存储,可......
  • JavaScript-Mutation Observer API
    概述 MutationObserverAPI用来监视DOM变动。DOM的任何变动,比如节点的增减、属性的变动、文本内容的变动,这个API都可以得到通知。概念上,它很接近事件,可以理解为DOM发生变动就会触发MutationObserver事件。但是,它与事件有一个本质不同:事件是同步触发,也就是说,DOM的变动......
  • JavaScript--String对象&自定义对象&Windows对象
    String对象 varstr1=newString("abc")varstr2="abc"trim():去除字符串前后两端的空白字符自定义对象  BOM对象 1、Windowconfirm方法会产生一个返回值varflag=confirm("");按确定返回true按取消返回falsesetTimeout()只执行一次setInterval()循环执行......
  • JavaScript进阶
    闭包闭包(closure)是一个函数以及其捆绑的周边环境状态(lexicalenvironment,词法环境)的引用的组合。换而言之,闭包让开发者可以从内部函数访问外部函数的作用域。在JavaScript中,闭包会随着函数的创建而被同时创建。<body><script>//闭包:内层函数+外层函数变量/......
  • DolphinDB 流计算优化实践:时延统计与性能调优
    在实时计算中,端到端的响应延迟是衡量计算性能时最重要的指标。DolphinDB内置的流数据框架支持流数据的发布与订阅、流式增量计算、实时关联等,用户能够快速实现复杂的实时计算任务,达到毫秒级甚至亚毫秒级的效果,而无需编写大量代码。本文介绍如何对DolphinDB流计算任务进行全链路......
  • jQuery.js - 前端必备的Javascript库
    作者:WangMin格言:努力做好自己喜欢的每一件事jQuery.js是什么?jQuery是一个快速简洁、免费开源易用的JavaScript框架,倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供了一种简便的JavaScript设计模式,以及我们开发中常用到的操作DOM的API,优化HTML文档操作......
  • The Javascript alert, confirm, and prompt boxes
    Thealert,confirm,andpromptboxesThethree"commands"involvedincreatingalert,confirm,andpromptboxesare:window.alert()window.confirm()window.prompt()Letslookatthemindetail.Thefirstoneis:window.alert()Thiscommandpopsu......