JS 函数作用域

Posted cwjdd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 函数作用域相关的知识,希望对你有一定的参考价值。

函数的作用域

javascript中使用的是函数作用域,变量在声明它们的函数体以及这个函数体嵌套的任意函数体都是有定义的

ES6标准中的作用域 

为什么需要块级作用域

全局作用域和函数作用域,没有块级作用域,容易出现下列问题:

1) 变量提升导致内层变量可能会覆盖外层变量

  1.  
    var i = 5;
  2.  
    function func()
  3.  
    console.log(i);
  4.  
    if (true)
  5.  
    var i = 6;
  6.  
  7.  
  8.  
    func(); // undefined

2) 用来计数的循环变量泄露为全局变量

  1.  
    for (var i = 0; i < 10; i++)
  2.  
    console.log(i);
  3.  
  4.  
    console.log(i); // 10

ES6标准中的的块级作用域

‘块级作用域’通过新增命令let和const来实现,将会在以后介绍

以上是关于JS 函数作用域的主要内容,如果未能解决你的问题,请参考以下文章

js函数作用域作用域链闭包立即执行函数

js 函数作用域, 块级作用域和词法作用域

JS 函数作用域

js 作用域作用域链

Js基础27:作用域

JS:作用域小结