JavaScriptの予約語
まずはJavaScript*1の予約語がこんな感じ。
abstract | boolean | break | byte |
case | catch | char | class |
const | continue | default | delete |
do | double | else | extends |
false | final | finally | float |
for | function | goto | if |
implements | import | in | instanceof |
int | interface | long | native |
new | null | package | private |
protected | public | return | short |
static | super | switch | synchronized |
this | throw | throws | transient |
true | try | typeof | var |
void | while | with |
ぱっと見Java+αなんだけど、volatile
やstrictfp
がなかったりassert
やenum
がないんで、Java1.1相当(?)な感じになっている。しかもほとんどが使っていない・・・ 使ってるのは強調したやつで、ほかは未来のための予約語・・・って、class
とかinterface
とか、プロトタイプベースのオブジェクト指向言語で必要あるのか?って気はする。なんたって今でもJavaのクラス相当の機能はfunction
、つまり関数をベースに実現しているわけだし*2。あと、synchronized
はともかく、native
、transient
なんかは絶対使われないだろうな、とか。
false
、null
、true
も予約語に入れていいかどうか微妙。まぁ変数名等にしてはいけないって点では予約語だけど、これはあくまで特別な変数(特別な定数)だし。void
もビルトイン関数なのか演算子なのか微妙だし。また今度調べる必要がありそうだ。