分为两个阶段
- 编译器对代码进行词法分析,将代码变为可运行的代码.
- js引擎执行(赋值等过程都是在这个阶段完成的)
作用域的概念
代码执行时,变量的访问规则就叫作用域.
词法作用域.
词法作用域意味着 作用域是在书写代码时函数声明的位置来决定的.词法分析阶段就能知道全部标识符在哪里以及如何声明的.
js的作用域划分
js的作用域是词法作用域, 它的作用域只能通过function函数作用域 和 {}块级作用域来划分.当然还有全局作用域
var str = 'global';
function say(){
console.log(str)
}
function doSomeThing(){
let str = "函数内部作用域";
say()
}
doSomeThing() //global
因为say函数是写在全局作用域内的.它本身作用域内又没有这个变量.所以他会在它定义的作用域往上找. 就找到了全局的 global (和执行位置无关)
网友评论