关于javascript作用域的常见面试题分享

本文主要给大家分享了关于javascript作用域面试题的相关内容分享出来供大家参考学习,下面来一起看看吧。

一、作用域:

在了解作用域之前,首先需要明白一些基础概念:

一个变量、函数都有其作用的范围,超出作用不得使用,这个叫做作用域。

二、全局变量、局部变量:

1.全局变量

(1)在全局范围内声明的变量,如var a=1;

(2)只有赋值没有声明的值,如a=2; (注:如果a=2在函数环境中,也是全局变量

2.局部变量:

写入函数中的变量,叫做局部变量。

3.作用:

(1)程序的安全。

(2)内存的释放。

三、作用域链:

查找量的过程。先找自己局部环境有没有声明或者是函数,如果有,则查看声明有无赋值或者是函数内容,如果没有,则向上一级查找。

四、预解析顺序:

每个程序都要做的工作,程序开始先预解析语法,标点符号是否有误,解析内存是否可容纳,解析变量……直到解析无误了,才开始按正常的流程顺序走。试想一下,如果没有预解析顺序,直接按流程顺序走,可能程序执行到最后一个函数,发现了语法错误,才开始报错,那性能要有多差啊!

顺序内容

1.文件内引用的