JavaScript執行上下文和作用域是什麼及區別

17767793637發表於2021-01-04

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

var scope = "global scope";
function checkscope(){
    var scope = "local scope";
    function f(){
        return scope;
    }
    return f();
}
checkscope();
var scope = "global scope";
function checkscope(){
    var scope = "local scope";
    function f(){
        return scope;
    }
    return f;
}
checkscope()();

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20210104222609367.png#pic_cente
在這裡插入圖片描述


function F1() {
  var a = 100
  return function () {
    console.log(a)
  }
}
function F2(f1) {
  var a = 200
  console.log(f1())
}
var f1 = F1()
F2(f1) // 100


解釋:當函式被執行時,函式會根據作用域,去找當前作用域中的變數。
函式作用域是執行前就確定了,所以會從F1的作用域裡找到變數a的值,為100

相關文章