js作用域

Posted llc-Mite

tags:

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

执行环境是js最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。

全局执行环境就是最外围的一个执行环境,每一个函数都有自己的作用域

 

简单的说局部作用域可以访问外部作用域,外部作用域不能访问局部作用域

 

这里涉及到一个js解析器的工作方式

预解析:

 首先: 他会在所在的执行环境找一些东西,比如var function 参数 所有变量在正式运行代码之前都提前赋予一个未定义,所有函数在未正式运行之前都是一个代码块

遇到重名的只会留一个,变量和函数重名只会留下函数,函数和函数重名只会留下后面哪一个

 然后:逐行解读代码

 

域:script全局变量 全局函数,只要是一个域那么就会有预解析,然后执行,js是单线程,自上而下
函数 {}json 局部域

预解析从里到外,作用域链

 


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

前端:如何理解 JS 的作用域和作用域链?说说闭包的两个应用场景

js 作用域作用域链

什么是块级作用域,为什么说js没有块级作用域

js函数作用域和块级作用域的区别

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

白话JS作用域,作用域,作用链详解