JavaScriptの中の語法のスコープ

472 ワード

JavaScriptでは、作用域には2つの主要な動作モードがあり、第一は語法の作用域であり、もう一つはダイナミックレンジと呼ばれる.
大部分の標準言語コンパイラの最初の仕事は語法化といい、つまりソースコードの文字を検査し、そして状態の解析過程があれば単語に意味を与える.だから、語法の作用域は語法の段階での作用域を定義することです.コードを書く時に変数とスコープをどこに書くかによって決められます.したがって、構文解析器はスコープをそのまま維持します.
くりを一つあげる:
var a = 1;

function demo() {
  alert(a);
}

~function(){
  var  a = 2;
  demo();  // 1
}()
demo()関数がイジェクトするaは1であり、2ではない.匿名関数の内部定義a変数が成功していないことを示す.変数aはコンパイラの実行段階でaが確定されています.これ以上ダイナミックに変化しません.