- ベストアンサー
javascript i in navigator
javascriptを学んでいる初心者です。 以下のforの条件式(i in navigator)は、何を表していますか? よろしくお願いします。 for (i in navigator) { try { txt += i+" = "+navigator[i]+"<br>"; }catch(e){} } 参照URL http://www.openspc2.org/JavaScript/reference4/navigator/navigator/index.html
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
連想配列 navigator の要素がある分だけ 繰り返す for ~ in 文というものです。 iには 連想配列のキーワードがはいっていきます。 navigatorは ブラウザ情報や、OS情報などが入った もともとある配列?(たぶん言い方はおかしいと思います 失笑してください) なので、連想配列 navigatorに入ってる情報を、 変数 txt に 配列要素数分だけ 追記 していくコードになります。 document.write navigator[userAgent]; で、 IEでみてたら IE firefoxでみてたら firefox と表示されます。
その他の回答 (2)
- fujillin
- ベストアンサー率61% (1594/2576)
さらにだそく。 オブジェクトの内容を走査してみるのに、例示のnavigatorをwindowとかdocumentに代えて試してみると面白いかも。 スクリプトで利用する(であろう)属性とか、メソッドが表示されるはず。 ブラウザによってjavascriptの実装内容が異なるので、表示される結果は変わってきます。
- babu_baboo
- ベストアンサー率51% (268/525)
/* めも for (value in object) {~は、オブジェクトをそうさ(走査)するためにあり、 はいれつをそうさしてはならない。 */ var ary = [0,1,2,3,4]; var i; for (i in ary) alert ([i, ary[i]]);// できるけどね、きたいしたじゅんばんにでないときがあるよ // オブジェクトをそうさするときは、きをつけることがある var obj = { a:'0', b:'1', c:'2', d:'3' }; var i; for (i in obj) alert ([i, obj[i]]); Object.prototype.e = '4'; // こういうおぎょうぎのわるいやつをくみいれていると for (i in obj) alert ([i, obj[i]]); // "e, 4" があらわれる // あらわれないようにするには、どうするか? for (i in obj) if (obj.hasOwnProperty (i)) alert ([i, obj[i]]); // "e, 4" がでない // ていじのさんぷるのへんすう i はグローバルへんすうになるけど、var はつけよう // for (var i in ary) /* だそく*/ if ('d' in obj) alert ("obj のなかに、d がある。あたいは、" + obj.d);