JS--作用域

70 阅读1分钟

作用域是在代码编写完成时就已经确定了的,跟在什么地方调用无关。

var x = 10
function fn(){
    console.log(x)  //x的作用域在此方法编写完后已经确定,fn内没有x,就向作用域链上一层找,即全局作用域
}
function show(){
    var x = 20
    fn()
}
show()  //结果打印出fn里的x值为10

作用域和执行上下文之间最大的区别是: 执行上下文在运行时确定,随时可能改变;作用域在定义时就确定,并且不会改变