識別子とは名前のことです。JavaScriptでは変数や関数の名前を指定するのに識別子を用います。識別子に使える文字は、Unicode文字、アンダースコア、ドル記号のいずれかでなければなりません。また識別子の先頭を数字にすることはできません。またキーワードなど、識別子に使うことができない予約語が存在します。
識別子の例
i str tmp _dummy $value
変数とは、プログラムが使うデータを一時的に保存するための領域に名前をつけたものです。変数につけた名前(識別子)を変数名と呼び、変数に入っているデータを値と呼びます。JavaやCなどの言語と大きく異なる点として、JavaScriptには変数の型という概念がありません。JavaScriptの変数には任意のデータ型の値を代入できます。
変数はvar 変数名として宣言し、変数=値という形で値を代入、変数名で値を参照することができます。変数を含んだ計算も行うことができます。以下の変数bのように宣言せずに変数を用いることもできますが、基本的に変数は宣言して利用するスタイルのほうが好ましいです。varの有無による差は、関数内で変数を利用する際に違いが出てきます。これについてはスコープの項で説明します。JavaScriptでの変数とプロパティには差がなく、オブジェクトを学習すれば、JavaScriptの変数はグローバルオブジェクトのプロパティに過ぎないことが分かります。これについてはオブジェクトの項を参照ください。
ECMAScript第3版でのJavaScriptの予約語は次のとおりです
| break | case | catch | continue | default | 
| delete | do | else | false | finally | 
| for | function | if | in | instanceof | 
| new | null | return | switch | this | 
| throw | true | try | typeof | var | 
| void | while | with | 
ECMA拡張用の予約語は次のとおりです。ただし、as,is,namespace,useの4つはECMAScript第3版には含まれていません。
| abstract | as | boolean | byte | char | 
| class | const | debugger | double | enum | 
| export | extends | final | float | goto | 
| implements | import | int | interface | is | 
| long | namespace | native | package | private | 
| protected | public | short | static | super | 
| synchronized | throws | transient | use | volatile |