主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

IE8でのfor ... in ...ループ with Javascript

                
tags:
最近作りたいもののためにJavascriptを勉強しているのだが、for...inループの使い方でちょっとひっかかった。pythonとの違いや、IE8とIE9での差異があったようなのでまとめておく。

まずpythonとの比較。pythonではリストをfor...inループに使えば、リストの内容をそのままひぱって来てくれる、下記のように。
python

>list = ['eins', 'twei', 'drei']
>for x in list: print x
'eins'
'twei'
'drei'


javascriptで同様のことをしようとすると、リストの内容でなくインデックスナンバーをひっぱってくるようだ。
Javascript

>>list = ['eins', 'twei', 'drei'];
>> for (x in list){ console.log(x);}
LOG: 0
LOG: 1
LOG: 2





もう一つ、IE8とIE9の差異がこのfor...inループにあった。真上のjavascriptはIE9で実行していた。これをIE8で実行すると、出力は以下のようになる。

LOG: 0
LOG: 1
LOG: 2
undefined

IE9のときの出力に加え、最後にundefinedが出力されている。xに何が入っているか確認したら"lastIndex"となっていた。というわけで、IE8対応にする場合はfor...inループの使用を控えたほうがよさそうだ、IE8が廃れるまでは。

>>list = ['eins', 'twei', 'drei'];
>> for (x=0; x < list.length; x++){ console.log(list(x));}
            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。