云迈博客

您现在的位置是:首页 > 前端技术 > 原生js相关 > 正文

原生js相关

ES5实现变量的块级作用域

dengkai2022-07-31原生js相关14
​众所周知,ES6新增了let关键字用来定义局部变量,它使得JS的变量有了块级作用域。块级作用域是指变量只在{}内有效。那么在ES6以前如何给变量实现块级作用域呢?答案就是使用立即执行匿名

众所周知,ES6新增了let关键字用来定义局部变量,它使得JS的变量有了块级作用域。

块级作用域是指变量只在{}内有效。

那么在ES6以前如何给变量实现块级作用域呢?答案就是使用立即执行匿名函数。

先看看没有块级作用域的情况:

    function a(){
        for(var i=0;i<3;i++){

        }    
        console.log(i);
    }
    a();

上述例子中,将输出 i=3,因为i使用var声明,作用域是整个函数。

如果需要让变量i只在for循环中有效呢,我们可以这样实现:

即在for循环外面包裹一层匿名函数,在匿名函数外加圆括号表示立即执行。

function a(){
    (function(){
        for(var i=0;i<3;i++){
            console.log(i);
        }    
    })();

    console.log(i); //输出undefined
}
a();

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~