面试官爱问的作用域与作用域链
访问函数内部声明的变量是不可访问的,这背后的原因就是 JavaScript 作用域存在导致的结果。 2、什么是词法环境 说到作用域,那什么是作用域?我们先来认识一下这位老朋友词法环境。 ECMAScript 规范中对词法环境的描述如下:词法环境是用来定义基于词法嵌套结构的 ECMAScript 代码内的标识符与变量值和函数值之间的关联关系的一种规范类型。 说的直白一点,词法环境就是一套规范和规则,它用来规定某些函数和变量的可访问范围等,我们也称词法环境为「词法作用域」。 既然词法作用域是一套约定好的规则,那么词法作用域的作用范围是开发人员在写代码的时候就已经是确定了的。 当代码执行的时候, JavaScript 引擎就会根据这套规范通过标识符名称来查找相对应的变量和函数。 好吧,最后给它做个总结性的定义。 作用域:作用域是一套约定好的规范和规则,它用来规定某些函数和变量的可访问性等。 二、作用域链
作用域我们弄明白了,我们再来看作用域链。作用域链和作用域却大不相同,咱们分别从「执行栈层面」和「代码层面」来体验一下什么是作用域链。 (编辑:甘孜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |