JavaScript: 変数や関数の名前として使える文字は?
変数や関数の名前のことを「識別子」といいます。
識別子として if や for のような「予約語」は使えません。 予約語とは、JavaScript の仕様としてあらかじめ決められている特殊なキーワードです。 下で予約語を紹介しています。
予約語以外で識別子として使える文字には以下のような決まりがあります。
先頭文字
- Unicode文字
- アンダースコア(_)
- ドル記号($)
2文字目以降
- Unicode文字
- アンダースコア(_)
- ドル記号($)
- 数字
先頭に数字が使えないことに注意してください。
var a5;
はOKですが、
var 5a;
はNGです。先頭に数字を使った時のエラーメッセージは次の通りです。(Firefox)
SyntaxError: identifier starts immediately after numeric literal
主な予約語
JavaScriptの予約語はたくさんありますので、 詳細を知りたい方はJavaScriptの仕様を定義しているサイトで確認してください。
ECMAScript 2015 の予約語
| break | case | catch | const | continue | debugger | default |
| delete | do | else | export | extends | false | finally |
| for | function | if | import | in | instanceof | new |
| null | return | super | switch | this | throw | true |
| try | typeof | var | void | while | with | yield |
今後の予約済みキーワード
| await | enum | implements | package |
| protected | interface | private | public |
| static |
定義済みのグローバル関数やグローバル変数
JavaScriptで定義されているグローバル関数(例えば Math や Date 等)や グローバル変数(例えば undefined 等)も、 識別子として使用しないようにしてください。
| Array | arguments | Boolean | Date | decodeURI |
| decodeURIComponent | encodeURI | encodeURIComponent | Error | eval |
| EvalError | Function | Infinity | isFinite | isNaN |
| JSON | Math | NaN | Number | Object |
| parseFloat | parseInt | RangeError | RefferenceError | RegExp |
| String | SyntaxError | TypeError | undefined | URIError |