Safari では char や short といった予約語を、JavaScript の変数名として使えないのですね。
IE や Firefox では動くのに、Safari だけ動かないプログラムがあり、ハマりました。。。
言語仕様的な予約語だから使わない、というのはモチロンだけど、『goto』とか『class』くらいは
直感的に何となく怪しそうだと分かるが、C 言語でもないし『char』が使えないとは思わなかったヨ。
2007/06/13 追記: Windows 版の Safari 3.0 の結果も追加しました!
参考:ECMA-262 - ECMAScript Language Specification に予約語の一覧が入っています。
下記の表で、右端の欄が「〜 is available.」となっていれば、変数名として利用可能です。
空欄になっている場合は、JavaScript エラーが発生しています。
Safari でも、最新の AppleWebKit/522(=Safari 3.0)では動作が IE7 互換に変わっていますね。
お使いのブラウザ:
| Word | IE 6.0 & 7.0 | Firefox 2.0.0.3 | Safari 2.0 AWK/419 | Opera 9.20 | Safari 3.0 AWK/522 | Your Browser |
|---|---|---|---|---|---|---|
| abstract | N/A | |||||
| enum | N/A | N/A | N/A | |||
| int | N/A | |||||
| short | N/A | |||||
| boolean | N/A | |||||
| export | N/A | N/A | N/A | N/A | ||
| interface | N/A | |||||
| static | N/A | |||||
| byte | N/A | |||||
| extends | N/A | N/A | N/A | |||
| long | N/A | |||||
| super | N/A | N/A | N/A | |||
| char | N/A | |||||
| final | N/A | |||||
| native | N/A | |||||
| synchronized | N/A | |||||
| class | N/A | N/A | N/A | |||
| float | N/A | |||||
| package | N/A | |||||
| throws | N/A | |||||
| const | N/A | N/A | N/A | N/A | N/A | |
| goto | N/A | N/A | ||||
| private | N/A | |||||
| transient | N/A | |||||
| debugger | N/A | N/A | N/A | |||
| implements | N/A | |||||
| protected | N/A | |||||
| volatile | N/A | |||||
| double | N/A | |||||
| import | N/A | N/A | N/A | N/A | ||
| public | N/A |
トラックバックURL:http://www.kawa.net/service/tb/ajaxtb.cgi/works/js/tips/future-reserved-words.html
Kawa.netxp © Copyright 2006 Yusuke Kawasaki