JS高级——作用域

Posted 站错队了同志

tags:

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

作用域

1、js中没有块级作用域

2、如果有块级作用域,那么下面代码将会是undefined undefined

<script>
    for (var i = 0; i < 10; i++) {
        var num = i;
    }
    console.log(i);
    console.log(num);
</script>

词法作用域

1、就是在代码写好的那一刻,变量的作用域就已经确定了,这种作用域,就是所谓的词法作用域

2、和词法作用域相对的叫动态作用域 ,js中是词法作用域不是动态作用域

3、在JS中唯一能产生作用域的是函数

词法作用域规则

1、函数允许访问函数外的数据

2、整个代码结构中只有函数可以限定作用域

3、作用域规则首先使用提升规则分析

4、如果当前作用域中有了该变量, 就不考虑外面的同名变量

 

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

JavaScript高级JavaScript的运行原理:V8引擎,JS代码执行原理,作用域和作用域链面试题

JS高级. 05 词法作用域变量名提升作用域链闭包

JS高级心法——作用域链

JS作用域作用域链

JS 作用域及作用域链

JS 作用域及作用域链