サンプルコード
getより後にxを定義したのに、getを実行すると"hello"が返ってきます。
var get = function(){
return x;
}
var x = "hello";
get();
仕様の説明
shuhei@githubに教えてもらった var - JavaScript | MDN によればJavaScriptの「var の巻き上げ」と呼ばれる動作です。代入した変数はスコープの先頭で宣言されていたものと見なされます。
つまり、DQNEOさんのサンプルコードと等価になります。
var x,get;
get = function(){
return x;
}
x = "hello";
get();