IE11で「識別子、文字列または数がありません」エラー
こんにちは「すーさん」こと鈴木雅人です。
今回はIEに翻弄された備忘録として投稿します。
javascriptの連想配列、通常配列、その他オブジェクトの記法によってIE(インターネットエクスプローラー)独特のエラー「識別子、文字列または数がありません」が出てしまう時の対処法をまとめました。
連想配列などのオブジェクトの記述方法について、IEでもエラーが出ない記述方法は下記の通り
ケツカンマ問題(他のサイトでもよく見るケースですね。)
オブジェクトのプロパティや連想配列or通常配列の要素の最後に「 , (カンマ)」を入れるとエラーになります
記法問題
キーの指定に「 .(ドット)」(ドット記法)を使うとエラーになります
「 [‘ ‘](ブラケット)」(ブラケット記法)を使いましょう!
(例)
var obj = {a: “1”, b:”2″};
誤→var a = obj.a; // 1(IEではエラーが出る場合がある)
正→var a = obj[‘a’]; // 1(どのブラウザでも対応)
var obj = {a: “1”, b:”2″};
誤→var a = obj.a; // 1(IEではエラーが出る場合がある)
正→var a = obj[‘a’]; // 1(どのブラウザでも対応)
変数問題
プロパティ名もしくはキーに変数を使う場合は{ }内で定義できない。
(例)
誤→var key1 = test;
var obj = {
[key1]: result,
key2: result2
};
// IE非対応正→var key1 = test;
var obj = {
key2: result2
}
obj[key1] = result2;
// 全ブラウザ対応
誤→var key1 = test;
var obj = {
[key1]: result,
key2: result2
};
// IE非対応正→var key1 = test;
var obj = {
key2: result2
}
obj[key1] = result2;
// 全ブラウザ対応
以上3つを試すとIE独特のエラーは解消されると思います!