javascript - js 配列ループがカンマを出力するのはなぜですか? 。 。
習慣沉默
習慣沉默 2017-05-18 10:56:27
0
6
795

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

習慣沉默
習慣沉默

全員に返信(6)
Ty80

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

リーリー

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

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

いいねを押す +0
为情所困

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

いいねを押す +0
给我你的怀抱

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

リーリー

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

リーリー

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

いいねを押す +0
仅有的幸福

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

いいねを押す +0
左手右手慢动作

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

いいねを押す +0
曾经蜡笔没有小新

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!