アプリ版:「スタンプのみでお礼する」機能のリリースについて

javascriptを学んでいる初心者です。
以下のforの条件式(i in navigator)は、何を表していますか?
よろしくお願いします。

for (i in navigator) {
try {
txt += i+" = "+navigator[i]+"<br>";
}catch(e){}
}

参照URL http://www.openspc2.org/JavaScript/reference4/na …

A 回答 (3件)

連想配列 navigator の要素がある分だけ 繰り返す for ~ in 文というものです。


iには 連想配列のキーワードがはいっていきます。

navigatorは ブラウザ情報や、OS情報などが入った
もともとある配列?(たぶん言い方はおかしいと思います 失笑してください)
なので、連想配列 navigatorに入ってる情報を、
変数 txt に 配列要素数分だけ 追記 していくコードになります。

document.write navigator[userAgent]; で、 IEでみてたら IE firefoxでみてたら firefox と表示されます。
    • good
    • 0

さらにだそく。



オブジェクトの内容を走査してみるのに、例示のnavigatorをwindowとかdocumentに代えて試してみると面白いかも。
スクリプトで利用する(であろう)属性とか、メソッドが表示されるはず。

ブラウザによってjavascriptの実装内容が異なるので、表示される結果は変わってきます。
    • good
    • 0

/*


めも

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);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!