【Javascript】闭包之块级作用域

简介: 【Javascript】闭包之块级作用域

在js中我们应该尽量避免使用全局变量和全局函数,以防止发生命名冲突,那么要如何避免呢?js中有一个闭包的概念,现在我们使用闭包中块级作用域来讲解,这也是闭包中最重要的概念。

js本身是不支持像C/C#/java…这样的语言中有块级作用域的,即在语法块中定义的变量,在语法块外面是无法访问到的。

那么,js要怎么去模拟像C这样的块级作用域呢?我们先来看一个栗子:

例如:

 test();
 function test() {
  (function(){
    for(var i=0;i<3;i++){
      console.log(i);//这个时候i就在**匿名函数里**面有效了,在**匿名函数外**无效,在匿名函数外,i就被销毁了
    }
  })(); 
  console.log(i);//输出:undefined
}

在函数内部创建一个匿名函数,就相当于在函数内部创建了一个私有作用域,这对于在较大/多人开发的项目中是很好用的,这样每个程序员能在自己的功能函数中使用自己的变量不至于混乱、冲突。



相关文章
|
4月前
|
JavaScript 前端开发
JavaScript 闭包:让你更深入了解函数和作用域
JavaScript 闭包:让你更深入了解函数和作用域
|
27天前
|
自然语言处理 JavaScript 前端开发
|
4月前
|
自然语言处理 JavaScript 前端开发
JavaScript中的闭包和作用域链
本文将介绍JavaScript中的闭包和作用域链的概念及其在编程中的应用。闭包是指函数与其相关的词法环境的组合,通过闭包我们可以实现变量的私有化和封装性,提高代码的安全性和可维护性。作用域链则是指在嵌套函数中查找变量的一种机制,它决定了变量的可见性和访问顺序。深入理解闭包和作用域链对于提升JavaScript编程技巧至关重要。
|
11月前
|
JavaScript 前端开发 Java
JavaScript(函数,作用域和闭包)(上)
JavaScript(函数,作用域和闭包)
|
自然语言处理 JavaScript 前端开发
JavaScript 变量作用域、this、闭包
JavaScript 变量作用域、this、闭包
57 0
|
JavaScript 前端开发
认识JavaScript中的闭包和匿名函数
认识JavaScript中的闭包和匿名函数
73 0
|
自然语言处理 JavaScript 前端开发
【JavaScript】40_函数闭包
# 15、函数 创建一个函数,第一次调用时打印1,第二次调用打印2,以此类推 可以利用函数,来隐藏不希望被外部访问到的变量 ## 闭包: 闭包就是能访问到外部函数作用域中变量的函数 什么时候使用: 当我们需要隐藏一些不希望被别人访问的内容时就可以使用闭包 构成闭包的要件: 1. 函数的嵌套 2. 内部函数要引用外部函数中的变量 3. 内部函数要作为返回值返回 ```html <script> // let num = 0 // function fn(){ // num++ /
65 0
|
自然语言处理 JavaScript 前端开发
JavaScript中的闭包与作用域
JavaScript中的闭包与作用域
|
缓存 JavaScript 前端开发
JavaScript中 函数闭包详解
JavaScript中 函数闭包详解
112 0
JavaScript中 函数闭包详解
|
JavaScript 前端开发 Java
JavaScript—什么是闭包?为什么使用闭包?闭包产生的问题
闭包是有权限访问其他函数作用域内变量的函数
231 0