検索

ホームページ  >  に質問  >  本文

javascript - js 配列ループがカンマを出力するのはなぜですか? 。 。

タイトル通りです。 。 。理由を明らかにする###

習慣沉默習慣沉默2808日前815

全員に返信(6)返信します

  • PHP中文网

    PHP中文网2017-05-18 10:58:27

    その理由は name特別で、ブラウザは値を割り当てるときに強制的に文字列に変換します。

    リーリー

    window には組み込みのプロパティがあるためname,所以你在全局下声明name其实就是在给window.name赋值。关于window.name。类似的属性还有status、名前をグローバルに宣言すると、実際には window.name に値を割り当てることになります。 window.name について。同様の属性には、status などが含まれます。

    なのでname1を使っても問題ありません。実際、非グローバル環境で name を使用する場合、またはノードのグローバル環境で name を使用する場合、カンマはありません。

    返事
    0
  • 为情所困

    为情所困2017-05-18 10:58:27

    皆さん、name はキーワードです。変数に名前を付けるためにこれを使用しないでください。
    typeof を実行すると、name が文字列で name1 がオブジェクトであることがわかります

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:58:27

    スコープがグローバルなので、定義したとおりですname 变量相当于 window.name
    它是一个特殊的全局变量 任何值赋值给它都会进行 toString 操作
    这里你将数组给 window.name実際に出力してみると、それが配列ではなく文字列であることがわかります
    文字列はループを使用して走査できるため、カンマが出力されます

    リーリー

    解決策: グローバル スコープを使用せず、自己実行関数のレイヤーを追加しないでください

    リーリー

    または、ES6letキーワードを使用して変数を定義します

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-05-18 10:58:27

    コンソールに直接出力すると配列が文字列として扱われるため

    返事
    0
  • ringa_lee

    ringa_lee2017-05-18 10:58:27

    試してみたところ、変数名に問題があるようで、名前であればすべての文字が出力されます。具体的な理由は不明

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 10:58:27

    name は js の属性名であり、予約フィールドであるため、for in がこのフィールドをループするとき、文字列として処理されるため、文字列内のすべての文字が出力されます

    返事
    0
  • キャンセル返事