javascript - Comment se fait-il que la boucle du tableau JS génère des virgules? . .
習慣沉默
習慣沉默 2017-05-18 10:56:27
0
6
796

Tout comme le titre. . . Découvrez pourquoi

習慣沉默
習慣沉默

répondre à tous(6)
Ty80

La raison est que name est spécial et que le navigateur est obligé de le convertir en chaîne lors de l'attribution d'une valeur. name特殊,在赋值的时候浏览器强制转成了string。

var name = [0, 1, 2]
console.log(name) // 输出 "0,1,2"

因为window有内置属性name,所以你在全局下声明name其实就是在给window.name赋值。关于window.name。类似的属性还有status

所以你用name1 rrreee

Parce que window a un attribut intégré name, donc lorsque vous déclarez name globalement, vous attribuez en fait une valeur à window.name. À propos de window.name. Les attributs similaires incluent statut, etc. #🎜🎜# #🎜🎜#Il n'y a donc aucun problème si vous utilisez name1. En fait, si vous utilisez name dans un environnement non global, ou si vous utilisez name dans un environnement global de nœud, il n'y a pas de virgule. #🎜🎜#
为情所困

Amis, name est un mot-clé, ne l'utilisez pas pour nommer des variables
Vous pouvez taper of et vous constaterez que name est une chaîne et name1 est un objet

.
给我你的怀抱

Parce que votre portée est globale, la variable name que vous définissez est équivalente à window.name
Il s'agit d'une variable globale spéciale à laquelle peut être attribuée n'importe quelle valeur Il effectuera l'opération toString
Ici, vous donnez le tableau à window.name. En fait, vous pouvez le sortir et vous constaterez que ce n'est pas un tableau. mais une chaîne
Et il se trouve que la chaîne peut être parcourue à l'aide d'une boucle, donc une virgule est sortie name 变量相当于 window.name
它是一个特殊的全局变量 任何值赋值给它都会进行 toString 操作
这里你将数组给 window.name 实际你可以输出看一下会发现它并不是数组而是字符串
而恰好字符串是可以用循环遍历的 所以输出了逗号

var name = [0, 1, 2]
console.log(name) // 0,1,2
console.log(typeof name === 'string') // true

解决方法:不使用全局作用域 加一层自执行函数

(function() {
  var name = [0, 1, 2]
  console.log(name) // [0, 1, 2]
  console.log(Object.prototype.toString.call(name)) // [object Array]
})()

或者使用 ES6let rrreee

Solution : N'utilisez pas la portée globale et ajoutez une couche de fonction auto-exécutable#🎜🎜# rrreee #🎜🎜#Ou utilisez le mot-clé let de ES6 pour définir les variables#🎜🎜#
仅有的幸福

Parce que le tableau est traité comme une chaîne lorsqu'il est sorti directement sur la console

左手右手慢动作

Je l'ai essayé et cela semble être un problème avec le nom de la variable. Tant qu'il s'agit du nom, chaque caractère sera affiché. La raison spécifique est inconnue

曾经蜡笔没有小新

Parce que name est le nom de l'attribut de js et qu'il s'agit d'un champ réservé. Lorsque for in parcourt le champ, il est traité comme une chaîne, donc chaque caractère de la chaîne sera affiché

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!