JavaScriptは基本的に全ての値をオブジェクトとして扱う。
だから変数を使うときは本来
var b = new Boolean(true);
var n = new Number(100);
var s = new String('Hello!');
var r = new RegExp('.*', 'i');
と書かなければならないのだが、いちいちこんなことを書くのは非効率なので、
上と同じ意味のことを
var b = true;
var n = 100;
var s = 'Hello';
var r = /.*/i;
と書くこともできる。下の書き方をリテラルと呼ぶ。
君はリテラルに散々お世話になっているはずだ。
# もっとも、上記の説明は意図的にプリミティブ値に触れていない。
# そのため説明に大きな欠陥があるんだけど、今は考えないでおく。
# また、ArrayとObjectの初期化子[]、{}をリテラルと混同している人が非常に多いが
# 厳密にはECMA262のArrayとObjectにリテラルは存在しない。
# 初期化子[]、{}の書式がリテラルのようだ、というだけ。