`

js 全局变量优点和缺点

阅读更多

全局变量的优点:可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。

 

全局变量的缺点:

(1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。

(2)全局变量破坏了函数的封装性能。函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立。但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性。

(3)全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。

因此,如果不是万不得已,最好不要使用全局变量。

 

.

分享到:
评论

相关推荐

    VUE 全局变量的几种实现方式

    在Vue.js框架中,全局变量的使用通常是为了在多个组件之间共享数据,避免重复的数据获取和状态管理。本文将详细探讨Vue中实现全局变量的三种常见方法:全局变量专用模块、挂载到Vue.prototype以及使用Vuex。 1、...

    详解Node全局变量global模块

    Node全局变量global模块是Node.js中一个非常重要的模块,它提供了一个全局命名空间,允许开发者在应用程序中定义全局变量和函数。本文将详细介绍Node全局变量global模块的概念、使用方法和API结构图。 一、global...

    javascript中运用闭包和自执行函数解决大量的全局变量问题

    在JavaScript编程中,全局变量的滥用常常导致代码的混乱和潜在的错误,因为它们在整个程序范围内都是可访问的,容易引发命名冲突和不可预测的状态变化。为了解决这个问题,我们可以利用闭包和自执行函数(立即调用的...

    js闭包的理解以及作用.docx

    闭包是JavaScript中实现数据隐藏和封装的一种重要手段,对于理解和编写高效的JS代码至关重要。 1. **作用域的理解** - **全局变量**:在整个程序中都可访问的变量,它们在整个脚本的生命周期内都存在。 - **局部...

    JavaScript中匿名函数的用法及优缺点详解_.docx

    - 模块化:通过匿名函数,配合var关键字,可以创建私有作用域,避免全局变量污染,如YUI和其他JavaScript库中广泛使用。 - 防止命名冲突:在多个脚本共存的页面中,匿名函数可以降低变量命名冲突的风险。 - 函数...

    js闭包所用的场合以及优缺点分析

    4. **避免全局污染**:通过闭包,可以避免过多的全局变量,减少命名冲突。 **闭包的缺点:** 1. **内存消耗**:由于闭包会保持对外部变量的引用,即使外部函数执行完毕,这些变量也不会被垃圾回收,可能导致内存...

    2.04 面向对象编程.pdf

    全局变量的作用域是全局性的,在 JavaScript 的任何地方都可以使用全局变量。在函数中使用 var 关键字声明变量,这时的变量即是局部变量,它的作用域只在声明该变量的函数内,在函数外面是访问不到该变量的。 闭包...

    JavaScript中匿名函数的用法及优缺点详解_.pdf

    匿名函数在JavaScript中有着广泛的应用,特别是在避免全局变量污染、实现模块化和函数式编程等方面。以下是对匿名函数的详细说明: 1. **定义方式**: - 函数关键字(function)语句:这是最常见的定义函数的方式,...

    JavaScript进阶面试题_30题.pdf_前端面试题

    9. JavaScript 中的全局函数和全局变量:JavaScript 中有许多全局函数和全局变量,例如 Infinity、NaN、undefined、decodeURI()、decodeURIComponent()、encodeURI()、encodeURIComponent()、escape()、eval()、is...

    【JavaScript源代码】配置vue全局方法的两种方式实例.docx

    这样配置后,无需import,你就可以直接在项目中使用`UTILS`、`TOAST`和`LOADING`等全局变量。这种方法对于那些希望全局共享但不希望直接挂载到Vue实例上的模块特别有用。 **优点**:避免了Vue实例大小的增加,...

    JS 模块 划分 框架

    JavaScript 模块化的主要目标是避免全局变量污染,促进代码复用,以及提高代码的可读性和可维护性。 JavaScript 有多种模块化解决方案,包括 CommonJS、ES6 模块(也称为 ES2015 模块)和 AMD(Asynchronous Module...

    js垃圾回收.pdf

    - 不使用var、let或const声明的变量将成为全局变量,即使不再使用,也无法被垃圾回收。 #### (2) 定时器 - 如果未取消定时器,其回调函数可能通过闭包引用外部变量,导致内存无法释放。 #### (3) 闭包 - 闭包会...

    JavaScript闭包和回调详解

    使用闭包有一个优点,也是它的缺点,就是可以把局部变量驻留在内存中,可以避免使用全局变量。全局变量在每个模块都可调用,这势必将是灾难性的。所以推荐使用私有的,封装的局部变量。一般函数执行完毕后,局部活动...

    JavaScript基础面试题_62题.pdf_前端面试题

    闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。在JavaScript中,函数即闭包,只有函数才会产生作用域的概念。闭包的最大用处有两个,一个是可以读取...

    JavaScript面试题

    闭包的优点是可以创建私有变量,从而避免全局变量污染,但缺点是闭包容易造成内存泄露,因为闭包中的变量不会被垃圾回收机制自动清除。为了避免内存泄露,应当在函数执行完毕后清除对闭包中变量的引用。 JavaScript...

    JavaScript中实现单体模式分享

    - 在JavaScript中,单体对象通常是一个全局变量或由某个全局变量持有。 - JavaScript不支持私有属性和方法的原生语法,但可以通过闭包(Closures)和立即执行函数表达式(IIFE)来模拟私有成员。 ### 单体模式的...

    JavaScript 匿名函数和闭包介绍

    它们允许我们保存函数的私有状态,避免使用全局变量,从而使代码模块化和封装性更强。但同时,闭包也会带来一些问题,比如潜在的内存泄漏。因为闭包可以访问外部函数的变量,而这些变量通常会在外部函数执行完毕后...

    高性能JavaScript

    在JavaScript的异步编程部分,作者介绍了回调函数、Promise、async/await等技术,讨论了它们的优缺点和适用场景,帮助开发者更好地应对复杂的并发问题。此外,还涉及了模块化和依赖管理,讲解了CommonJS、AMD和ES6...

Global site tag (gtag.js) - Google Analytics