Comment faire la différence entre l'opérateur spread et l'opérateur reste en JavaScript ?
P粉022501495
2023-09-04 11:25:07
<p>La syntaxe est la même, alors comment JavaScript fait-il la distinction entre les deux ? </p>
<p>Est-il jugé en fonction du type de données de la variable sur laquelle l'opération est effectuée ? Ou est-ce basé sur l'endroit où la variable est utilisée ? Ou ni l'un ni l'autre ? </p>
L'analyseur JavaScript détermine cela en analysant le contexte grammatical dans lequel les trois points apparaissent.
Il examinera si ces 3 points sont utilisés avec des littéraux de tableau, des appels de fonction ou des paramètres de fonction.
Pour opérateur spread : lorsque 3 points sont utilisés dans les littéraux de tableau et les appels de fonction, il est considéré comme un opérateur spread.
Pour Opérateur de paramètre restant : lorsque 3 points sont utilisés dans les paramètres d'une définition de fonction, ils sont considérés comme l'opérateur de paramètre restant.
...
不是一个运算符。它是主要的语法,就像在for
语句中的()
一样(它们是for
fait partie de la syntaxe, pas une instance de l'opérateur de regroupement). Les opérateurs ne fonctionnent pas comme la syntaxe spread et rest.L'analyseur sait lequel vous utilisez en raison de la position dans laquelle vous l'utilisez, puisqu'une seule de chaque position est valide et l'autre ne l'est pas. Par exemple :
...il est évident que vous utilisez la syntaxe rest dans les deux cas, puisqu'elle est utilisée dans les modes de déstructuration (1 et 2) et dans les listes d'arguments (3).
Et pour :
...c'est évidemment une expansion, pas un reste, puisque vous l'utilisez dans un littéral de tableau (1), un littéral d'objet (2) et la liste de paramètres d'un appel de fonction (3).