• ベストアンサー

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

質問者が選んだベストアンサー

  • ベストアンサー
  • noris02
  • ベストアンサー率74% (56/75)
回答No.1

連想配列 navigator の要素がある分だけ 繰り返す for ~ in 文というものです。 iには 連想配列のキーワードがはいっていきます。 navigatorは ブラウザ情報や、OS情報などが入った もともとある配列?(たぶん言い方はおかしいと思います 失笑してください) なので、連想配列 navigatorに入ってる情報を、 変数 txt に 配列要素数分だけ 追記 していくコードになります。 document.write navigator[userAgent]; で、 IEでみてたら IE firefoxでみてたら firefox と表示されます。

その他の回答 (2)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

さらにだそく。 オブジェクトの内容を走査してみるのに、例示のnavigatorをwindowとかdocumentに代えて試してみると面白いかも。 スクリプトで利用する(であろう)属性とか、メソッドが表示されるはず。 ブラウザによってjavascriptの実装内容が異なるので、表示される結果は変わってきます。

回答No.2

/* めも 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);

関連するQ&A