Maison > Questions et réponses > le corps du texte
P粉5459106872023-09-05 10:12:18
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.
P粉5494120382023-09-05 09:23:13
...
不是一个运算符。它是主要的语法,就像在 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 :
// 1 const [first, ...rest] = someArray; // 2 const { a, ...others } = someObject; // 3 function example(p1, ...others) { // ... }
...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 :
// 1 const x = [...someIterable]; // 2 const o = { ...someObject }; // 3 example(...someIterable);
...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).