Maison > Questions et réponses > le corps du texte
js dans la console
++[[]][0]
为什么这个不报错++[]
Où est ce rapport d'erreur
迷茫2017-05-19 10:22:53
++[[]][0]
: [[]]
est un tableau contenant uniquement un tableau vide, puis selon la priorité de l'opérateur,< code >[] > (prefix)++, utilisez [[]][0]
et obtenez un tableau vide Array(0)
, qui est L'objet ++[[]][0]
: [[]]
是一个只包含一个空数组的数组,那么根据运算符优先级,[] > (prefix)++
,运算[[]][0]
,得到一个空数组Array(0)
,是一个对象,并且是数组中的一个值,符合左值的条件.之后进行(prefix)++
运算,由于++
运算将执行数据类型转换(PS:Javascript中具体的数据类型转换太复杂了,我就不展开了),这里Array[0]
将转换成0
,结果++
得到1.
具体可看控制台输出:
console.log([[]])
// > [Array(0)]
console.log([[]][0])
// > []
++[]
et est une valeur dans le tableau, remplit les conditions de lvalue
(prefix)++
est effectuée, car le ++
. l'opération exécutera la conversion du type de données (PS : la conversion du type de données spécifique en Javascript est trop compliquée, je ne m'étendrai pas là-dessus), ici Array[0]
sera converti en 0
, et le résultat est ++
Get 1. Veuillez consulter la sortie de la console pour plus de détails : rrreee
++[]
: LvalueQuelle est la 🎜valeur restante🎜 :🎜 🎜🎜Lvalue est un ancien terme qui signifie qu'une expression ne peut apparaître que sur le côté gauche de l'opérateur d'affectation. En JavaScript, les variables, les propriétés des objets et les éléments du tableau sont tous des valeurs.🎜🎜est un tableau vide, pas une lvalue légale, donc une erreur est signalée.
过去多啦不再A梦2017-05-19 10:22:53
J'ai déjà répondu à cette question et posté le lien directement :
Problème de conversion de type js