项目 代码优化 1、合理使用函数 2、减少定义全局变量 3、手工解除变量引用

本文主要是介绍项目 代码优化 1、合理使用函数 2、减少定义全局变量 3、手工解除变量引用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有时候要求项目控制在一个固定的大小范围内,而JS的内存问题可能会导致项目的卡顿,内存溢出等现象;那我们应该怎么解决??以我自己角度来给出一些建议

1、合理使用函数

1.1 函数的封装

我们要学会将重复的代码进行封装起来,在一定程度上减少代码,尽量一个功能就只实现一个功能,出错了也容易找错,如果后期业务进行改动,还能尽快的熟悉代码;

函数封装的步骤:

(1)声明和定义一个新的函数 ,给函数取一个见词知意的名字 。

    function add(形参){//add为函数名}

(2)核心代码放入函数体。

(3)提取形参。代码块中的形参对应的变量名需要进行修改

(4)调用。在要使用这个函数功能的地方调用和执行:函数名();例如add()就是调用add函数;

​ 函数都是声明和调用分开,而且可以不限次被调用,这是模块化思想的体现。但是对那些只需要执行一次的函数,怎么办呢?这就要用到立即执行函数。

1.2 立即函数

​ 立即执行函数,其实也可以叫初始化函数,英文名:IIFE,immediately-inovked-function expression。立即执行函数就是在定义的时候就立即执行,执行完以后就释放,包括函数内部的所有变量

​ 比如在页面完成初始化完成后执行的函数一般都是立即执行函数。

2、尽量少使用全局变量

var 定义变量

在JS中常用的定义变量的方式是使用var的方式,但是var变量无论是在for循环还是if等语句中定义,都是全局变量,除非在函数中定义,函数中用var定义的变量是局部变量,只能在函数局部作用域中使用,只要不要使用闭包,就不会出现在全局中,这也是建议使用函数的一个小原因吧。

(局部作用局的变量,只有在局部作用域被调用时,内存中才会临时开辟空间进行声明和使用,但是函数结束了调用,变量空间就会被释放)

let 定义变量

除了使用var定义一个变量,我们还可以使用let定义,let变量有自己的块作用域,在在for循环还是if等语句中用let定义的变量出了for或者if就不能被获取;块作用域生成的场合:if语句,for循环语句,do…while语句,while语句 等。

3、手工解除变量引用

在业务代码中,一个变量已经确切是不在需要了,可以手工解除变量,使得这个变量被回收。

var str = "qwkjrwmefdspolkjmrf";
。。。。。。。。
str = null;//手工解除

这篇关于项目 代码优化 1、合理使用函数 2、减少定义全局变量 3、手工解除变量引用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/934009

相关文章

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态