js声明の昇格

543 ワード

ブロックレベルの作用領域は、かっこ内の各セグメントのコードがそれぞれの作用領域を有することを意味し、javascriptはブロックレベルの作用領域がない.javascriptは関数のスコープしかありません.変数はそれらの関数体とこの関数のネストを宣言する任意の関数の中に定義されています.これは、変数が声明の前にも使用されています.javascriptという特性は非公式に声明の昇格と呼ばれています.javascript関数で宣言されているすべての変数(賦値に関係なく)は関数の上部に前倒しされています.実は変数の昇格以外に関数の部分にも詳細な紹介があります.

var scope = 'global';
function f(){
console.log(scope);//undefined
var scope = 'local';
console.log(scope);//'local'
}
ここで注意したいのはundefinedとエラーの違いです.(undefinedは間違っていません.定義がないだけです.)