2012年3月31日 (土曜日)

19:25:20 # Life javascriptのthisとかfunctionとか変数とかのスコープがよくわからない。 何読めばよくわかるんだろうか。 なんか驚愕した仕様としては、関数スコープでvarで宣言した変数はvarの行より手前でも有効らしい。C++からくると未定義かグローバル変数を参照するだろうと思うのだが、違う。

var a = 'global';
function hoge() {
  console.log(a);
  var a = 10;
  console.log(a);
}
console.log(a);
hoge();
	

var name = function functionName() {}var name = function() {} と外のスコープに対しては 同じ挙動をしてほしいところだが、 実装によってはfunctionNameに意味がある処理系がありそうだ。

Junichi Uekawa

$Id: dancer-diary.el,v 1.94 2009/10/21 14:02:48 dancer Exp $