JavaScript 関数リテラルとは?


関数リテラルとは?

JavaScriptの関数定義、通常は

function test(x){ return x*x; }

関数リテラルを使うと

var test = function(x){ return x*x; }

こうすると、ほかのJavaScriptの式中にも記述できる。

ブロックレベルのスコープはない

var a="global";
function f(){
alert(a);
var a="local";
}

このプログラムで最初のalert(a);はundefinedが表示される。

globalは表示されない。

JavaScriptにはブロックレベルのスコープがないので、

関数f内で宣言された変数aは関数全体で有効となる。

つまり、alert(a);はローカル変数のaを見ている。

しかし、aにlocalが設定されるのはalert(a);の後なので、

undefinedとなる。

この例を見るかぎり、変数は関数の先頭で宣言したほうがよいが、

下記もあとで読んでみる。

JavaScriptの変数についての考察

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。