

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Características de la versión ejecutable compatibles
<a name="supported-features"></a>

En las siguientes secciones se describe el conjunto de características compatibles de la versión ejecutable APPSYNC\$1JS.

## Características principales
<a name="core-features"></a>

Se admiten las siguientes características principales.

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

Se admiten los siguientes tipos:
+ números
+ cadenas
+ booleanos
+ objetos
+ matrices
+ funciones

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

Se admiten operadores, entre los que se incluyen:
+ operadores matemáticos estándar (`+`, `-`, `/`, `%`, `*`, etc.)
+ operador de fusión de NULL (`??`)
+ Encadenamiento opcional (`?.`)
+ operadores Bitwise
+ operadores `void` y `typeof`
+ operadores de distribución (`...`)

No se admiten los siguientes operadores:
+ operadores unarios (`++`, `--`, y `~`)
+ operador `in`
**nota**  
Utilice el operador `Object.hasOwn` para comprobar si la propiedad especificada está en el objeto especificado.

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

Se admiten las siguientes instrucciones:
+ `const`
+ `let`
+ `var`
+ `break`
+ `else`
+ `for-in`
+ `for-of` 
+ `if`
+ `return`
+ `switch`
+ sintaxis de distribución

No se admiten las siguientes:
+ `catch`
+ `continue`
+ `do-while`
+ `finally`
+ `for(initialization; condition; afterthought)`
**nota**  
Las excepciones son las expresiones `for-in` y `for-of`, que son compatibles.
+ `throw`
+ `try`
+ `while`
+ instrucciones etiquetadas

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

Se admiten los siguientes [literales de plantilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) de ES 6:
+ Cadenas de varias líneas
+ Interpolación de expresiones
+ Plantillas de anidamiento

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

Se admite la sintaxis de la función siguiente:
+ Se admiten las declaraciones de funciones.
+ Se admiten las funciones de flecha de ES 6.
+ Se admite la sintaxis del parámetro rest de ES 6.

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

Las funciones operan en modo estricto de forma predeterminada, por lo que no necesita agregar una instrucción `use_strict` en su código de función. Esto no se puede cambiar.

------

## Objetos primitivos
<a name="primitive-objects"></a>

Se admiten los siguientes objetos primitivos de ES y sus funciones.

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

Los siguientes objetos son compatibles:
+ `Object.assign()`
+ `Object.entries()` 
+ `Object.hasOwn()`
+ `Object.keys()` 
+ `Object.values()`
+ `delete` 

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

Se admiten las siguientes cadenas:
+  `String.prototype.length()` 
+  `String.prototype.charAt()` 
+  `String.prototype.concat()` 
+  `String.prototype.endsWith()` 
+  `String.prototype.indexOf()` 
+  `String.prototype.lastIndexOf()` 
+  `String.raw()` 
+  `String.prototype.replace()`
**nota**  
No se admiten expresiones regulares.   
Sin embargo, en el parámetro proporcionado se admiten constructos de expresiones regulares con estilo Java. Para obtener más información, consulte [Patrón](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html).
+ `String.prototype.replaceAll()`
**nota**  
No se admiten expresiones regulares.  
Sin embargo, en el parámetro proporcionado se admiten constructos de expresiones regulares con estilo Java. Para obtener más información, consulte [Patrón](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 ]

Se admiten los siguientes números:
+  `Number.isFinite` 
+  `Number.isNaN` 

------

## Objetos y funciones integrados
<a name="built-in-objects-functions"></a>

Se admiten las siguientes funciones y objetos.

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

Las siguientes funciones matemáticas son compatibles:
+  `Math.random()` 
+  `Math.min()` 
+  `Math.max()` 
+  `Math.round()` 
+  `Math.floor()` 
+  `Math.ceil()` 

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

Se admiten los siguientes métodos de matriz:
+ `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()`
**nota**  
`Array.prototype.sort()` no admite argumentos.
+ `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 ]

El objeto de la consola está disponible para su depuración. Durante la ejecución de la consulta en tiempo real, log/error las instrucciones de la consola se envían a Amazon CloudWatch Logs (si el registro está activado). Durante la evaluación de código con `evaluateCode`, las instrucciones de registro se devuelven en la respuesta del comando.
+ `console.error()`
+ `console.log()`

------
#### [ Function ]
+ No se admiten los métodos `apply`, `bind` y `call`.
+ Los constructores de funciones no son compatibles.
+ No se admite la transferencia de una función como argumento.
+ No se admiten llamadas a funciones recursivas.

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

Se admiten los siguientes métodos JSON:
+ `JSON.parse()`
**nota**  
Devuelve una cadena en blanco si la cadena analizada no es un JSON válido.
+ `JSON.stringify()`

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

No se admiten promesas ni procesos asíncronos.

**nota**  
No se admite el acceso a la red y al sistema de archivos durante el `APPSYNC_JS` tiempo de ejecución AWS AppSync. AWS AppSync gestiona todas las operaciones de E/S en función de las solicitudes realizadas por el AWS AppSync solucionador o la AWS AppSync función.

------

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

Se admiten las siguientes constantes globales:
+  `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`

## Tipos de error
<a name="error-types"></a>

No se admite la generación de errores con `throw`. Puede devolver un error mediante la función `util.error()`. Puede incluir un error en su respuesta de GraphQL mediante la función `util.appendError`.

Para obtener más información, consulte la sección sobre [utilidades de error](https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html#utility-helpers-in-error-js).