文法

識別子

識別子とは変数関数そしてラベルに使用する名前のことです。この識別子に使用できるのは、

  • Unicode文字
  • 数字
  • アンダースコア (_)
  • ドル記号 ($)

です。ただし識別子の先頭には数字を使用できません。Unicode文字が使用できることにより、日本語でも記述できます。よって

var 名前 = '田中';

のような記述も可能です。

識別子の再定義

すでに使用されている名前で変数や関数で定義すると、すでに使用されている変数や関数を再定義することになり、それらは使えなくなります。

function foo()
{
}

function bar()
{
    var foo = foo();
    // 「foo is not a function」として実行時エラーとなる。
}

var foo = foo();
// fooは undefinedとなる。

bar();

文末のセミコロン

C言語などでは文の終わりをセミコロン (;) で表すこととなっていますが、JavaScriptでは1つの行に1つの文を記述する場合には、文法上、行末にセミコロンはなくても構いません。それは行末にセミコロンがない場合には自動的にセミコロンが挿入されて解釈されるからなのですが、このことが問題となることがあります。

例えば、

return
    true;

と記述した場合には

return;
    true;

と解釈されるため、結果としてundefinedが返されることになります。