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