PHP中文网2017-05-18 10:58:27
その理由は name
特別で、ブラウザは値を割り当てるときに強制的に文字列に変換します。
window には組み込みのプロパティがあるためname
,所以你在全局下声明name其实就是在给window.name赋值。关于window.name。类似的属性还有status
、名前をグローバルに宣言すると、実際には window.name に値を割り当てることになります。 window.name について。同様の属性には、status
などが含まれます。
なのでname1
を使っても問題ありません。実際、非グローバル環境で name を使用する場合、またはノードのグローバル環境で name を使用する場合、カンマはありません。
为情所困2017-05-18 10:58:27
皆さん、name はキーワードです。変数に名前を付けるためにこれを使用しないでください。
typeof を実行すると、name が文字列で name1 がオブジェクトであることがわかります
给我你的怀抱2017-05-18 10:58:27
スコープがグローバルなので、定義したとおりですname
变量相当于 window.name
它是一个特殊的全局变量 任何值赋值给它都会进行 toString
操作
这里你将数组给 window.name
実際に出力してみると、それが配列ではなく文字列であることがわかります
文字列はループを使用して走査できるため、カンマが出力されます
解決策: グローバル スコープを使用せず、自己実行関数のレイヤーを追加しないでください
リーリーまたは、ES6
的 let
キーワードを使用して変数を定義します
曾经蜡笔没有小新2017-05-18 10:58:27
name は js の属性名であり、予約フィールドであるため、for in がこのフィールドをループするとき、文字列として処理されるため、文字列内のすべての文字が出力されます
。