

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fonctionnalités d'exécution prises en charge
<a name="supported-features"></a>

Les sections ci-dessous décrivent l'ensemble des fonctionnalités prises en charge par le moteur d'exécution APPSYNC\$1JS.

## Fonctions de base
<a name="core-features"></a>

Les fonctionnalités principales suivantes sont prises en charge.

------
#### [ Types ]

Les types suivants sont pris en charge :
+ nombres
+ chaînes
+ booléens
+ objects
+ tableaux
+ functions

------
#### [ Operators ]

Les opérateurs sont pris en charge, notamment :
+ opérateurs mathématiques standard (`+`, `-``/`,`%`,`*`,, etc.)
+ opérateur de coalescence nul () `??`
+ Chainage optionnel () `?.`
+ opérateurs bit à bit
+ `void`et `typeof` opérateurs
+ opérateurs de propagation (`...`)

Les opérateurs suivants ne sont pas pris en charge :
+ opérateurs unaires (`++`,`--`, et`~`)
+ Opérateur `in`
**Note**  
Utilisez l'`Object.hasOwn`opérateur pour vérifier si la propriété spécifiée se trouve dans l'objet spécifié.

------
#### [ Statements ]

Les déclarations suivantes sont prises en charge :
+ `const`
+ `let`
+ `var`
+ `break`
+ `else`
+ `for-in`
+ `for-of` 
+ `if`
+ `return`
+ `switch`
+ syntaxe de propagation

Les éléments suivants ne sont pas pris en charge :
+ `catch`
+ `continue`
+ `do-while`
+ `finally`
+ `for(initialization; condition; afterthought)`
**Note**  
Les exceptions sont les `for-of` expressions `for-in` et les expressions, qui sont prises en charge.
+ `throw`
+ `try`
+ `while`
+ déclarations étiquetées

------
#### [ Literals ]

Les [littéraux de modèle](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) ES 6 suivants sont pris en charge :
+ Cordes multilignes
+ Interpolation d'expressions
+ Modèles d'imbrication

------
#### [ Functions ]

La syntaxe de fonction suivante est prise en charge :
+ Les déclarations de fonctions sont prises en charge.
+ Les fonctions de flèche ES 6 sont prises en charge.
+ La syntaxe des paramètres de repos ES 6 est prise en charge.

------
#### [ Strict mode ]

Les fonctions opèrent en mode strict par défaut. Vous n’avez donc pas besoin d’ajouter une instruction `use_strict` dans votre code de fonction. Elles ne peuvent pas être modifiées.

------

## Objets primitifs
<a name="primitive-objects"></a>

Les objets primitifs suivants d'ES et leurs fonctions sont pris en charge.

------
#### [ Object ]

Les objets suivants sont pris en charge :
+ `Object.assign()`
+ `Object.entries()` 
+ `Object.hasOwn()`
+ `Object.keys()` 
+ `Object.values()`
+ `delete` 

------
#### [ String ]

Les chaînes suivantes sont prises en charge :
+  `String.prototype.length()` 
+  `String.prototype.charAt()` 
+  `String.prototype.concat()` 
+  `String.prototype.endsWith()` 
+  `String.prototype.indexOf()` 
+  `String.prototype.lastIndexOf()` 
+  `String.raw()` 
+  `String.prototype.replace()`
**Note**  
Les expressions régulières ne sont pas prises en charge.   
Cependant, les constructions d'expressions régulières de style Java sont prises en charge dans le paramètre fourni. Pour plus d'informations, voir [Motif](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html).
+ `String.prototype.replaceAll()`
**Note**  
Les expressions régulières ne sont pas prises en charge.  
Cependant, les constructions d'expressions régulières de style Java sont prises en charge dans le paramètre fourni. Pour plus d'informations, voir [Motif](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html).
+  `String.prototype.slice()` 
+  `String.prototype.split()` 
+  `String.prototype.startsWith()` 
+  `String.prototype.toLowerCase()` 
+  `String.prototype.toUpperCase()` 
+  `String.prototype.trim()` 
+  `String.prototype.trimEnd()` 
+  `String.prototype.trimStart()` 

------
#### [ Number ]

Les numéros suivants sont pris en charge :
+  `Number.isFinite` 
+  `Number.isNaN` 

------

## Objets et fonctions intégrés
<a name="built-in-objects-functions"></a>

Les fonctions et objets suivants sont pris en charge.

------
#### [ Math ]

Les fonctions mathématiques suivantes sont prises en charge :
+  `Math.random()` 
+  `Math.min()` 
+  `Math.max()` 
+  `Math.round()` 
+  `Math.floor()` 
+  `Math.ceil()` 

------
#### [ Array ]

Les méthodes matricielles suivantes sont prises en charge :
+ `Array.prototype.length` 
+ `Array.prototype.concat()` 
+ `Array.prototype.fill()` 
+ `Array.prototype.flat()` 
+ `Array.prototype.indexOf()` 
+ `Array.prototype.join()` 
+ `Array.prototype.lastIndexOf()` 
+ `Array.prototype.pop()` 
+ `Array.prototype.push()` 
+ `Array.prototype.reverse()` 
+ `Array.prototype.shift()` 
+ `Array.prototype.slice()` 
+ `Array.prototype.sort()`
**Note**  
`Array.prototype.sort()`ne supporte pas les arguments.
+ `Array.prototype.splice()` 
+ `Array.prototype.unshift()`
+ `Array.prototype.forEach()`
+ `Array.prototype.map()`
+ `Array.prototype.flatMap()`
+ `Array.prototype.filter()`
+ `Array.prototype.reduce()`
+ `Array.prototype.reduceRight()`
+ `Array.prototype.find()`
+ `Array.prototype.some()`
+ `Array.prototype.every()`
+ `Array.prototype.findIndex()`
+ `Array.prototype.findLast()`
+ `Array.prototype.findLastIndex()`
+ `delete` 

------
#### [ Console ]

L'objet console est disponible pour le débogage. Pendant l'exécution des requêtes en direct, les log/error instructions de console sont envoyées à Amazon CloudWatch Logs (si la journalisation est activée). Lors de l'évaluation du code avec`evaluateCode`, les instructions de journal sont renvoyées dans la réponse à la commande.
+ `console.error()`
+ `console.log()`

------
#### [ Function ]
+ Les `call` méthodes `apply``bind`, et ne sont pas prises en charge.
+ Les constructeurs de fonctions ne sont pas pris en charge.
+ La transmission d'une fonction en tant qu'argument n'est pas prise en charge.
+ Les appels de fonction récursifs ne sont pas pris en charge.

------
#### [ JSON ]

Les méthodes JSON suivantes sont prises en charge :
+ `JSON.parse()`
**Note**  
Renvoie une chaîne vide si la chaîne analysée n'est pas un JSON valide.
+ `JSON.stringify()`

------
#### [ Promises ]

Les processus asynchrones ne sont pas pris en charge et les promesses ne sont pas prises en charge.

**Note**  
L'accès au réseau et au système de fichiers n'est pas pris en charge au cours de l'`APPSYNC_JS`exécution dans AWS AppSync. AWS AppSync gère toutes les opérations d'E/S en fonction des demandes faites par le AWS AppSync résolveur ou AWS AppSync la fonction.

------

## Globals
<a name="globals"></a>

Les constantes globales suivantes sont prises en charge :
+  `NaN` 
+  `Infinity` 
+  `undefined`
+ [https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html](https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html)
+ [https://docs.aws.amazon.com/appsync/latest/devguide/extensions-js.html](https://docs.aws.amazon.com/appsync/latest/devguide/extensions-js.html)
+ `runtime`

## Types d’erreurs
<a name="error-types"></a>

Le renvoi d'erreurs avec n'`throw`est pas pris en charge. Vous pouvez renvoyer une erreur en utilisant `util.error()` la fonction. Vous pouvez inclure une erreur dans votre réponse GraphQL en utilisant la `util.appendError` fonction.

Pour plus d'informations, consultez la section [Utils d'erreur](https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html#utility-helpers-in-error-js).