tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

【Javascript】レキシカルスコープ

レキシカルスコープは 関数を定義した時点でスコープが決まる。
B()を実行した時にA()も実行されるが、A()が定義された時点のxが参照される為、最初の行のvar x = 10; が適用される。

var x = 10; 
function A(){
  console.log(x);  //この時の静的なスコープはx=10
}
function B(){
  var x = 1000;  //ここでもxが定義されている
  A();  //この時のxは10?1000?
}
A();  //10
B(); //-> 10 (1000ではない!)

参考

wemo.tech