javascript + opérateur
我想大声告诉你
我想大声告诉你 2017-05-19 10:20:53
0
2
415

js dans la console

++[[]][0] 为什么这个不报错
++[] Où est ce rapport d'erreur

我想大声告诉你
我想大声告诉你

répondre à tous(2)
迷茫

++[[]][0] :
[[]] est un tableau contenant uniquement un tableau vide, puis selon la priorité de l'opérateur,[] > (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

Ensuite, l'opération (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

++[] :
Lvalue

est un tableau vide, pas une lvalue légale, donc une erreur est signalée.

Quelle 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.🎜🎜
过去多啦不再A梦

J'ai déjà répondu à cette question et posté le lien directement :

Problème de conversion de type js

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal