

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Fitur runtime yang didukung
<a name="supported-features"></a>

Bagian di bawah ini menjelaskan kumpulan fitur yang didukung dari runtime APPSYNC\$1JS.

## Fitur inti
<a name="core-features"></a>

Fitur inti berikut didukung.

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

Jenis berikut didukung:
+ angka
+ tali
+ boolean
+ objek
+ larik
+ fungsi

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

Operator didukung, termasuk:
+ operator matematika standar (`+`,`-`,`/`,`%`,`*`, dll.)
+ operator penggabungan nullish () `??`
+ Rantai opsional () `?.`
+ operator bitwise
+ `void`dan `typeof` operator
+ operator penyebaran (`...`)

Operator berikut tidak didukung:
+ operator unary (`++`,`--`, dan`~`)
+ Operator `in`
**catatan**  
Gunakan `Object.hasOwn` operator untuk memeriksa apakah properti yang ditentukan ada di objek yang ditentukan.

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

Pernyataan berikut didukung:
+ `const`
+ `let`
+ `var`
+ `break`
+ `else`
+ `for-in`
+ `for-of` 
+ `if`
+ `return`
+ `switch`
+ sintaks spread

Berikut ini tidak didukung:
+ `catch`
+ `continue`
+ `do-while`
+ `finally`
+ `for(initialization; condition; afterthought)`
**catatan**  
Pengecualian adalah `for-in` dan `for-of` ekspresi, yang didukung.
+ `throw`
+ `try`
+ `while`
+ pernyataan berlabel

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

[Literal template](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) ES 6 berikut didukung:
+ String multi-baris
+ Interpolasi ekspresi
+ Template bersarang

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

Sintaks fungsi berikut didukung:
+ Deklarasi fungsi didukung.
+ Fungsi panah ES 6 didukung.
+ ES 6 sisanya sintaks parameter didukung.

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

Fungsi beroperasi dalam mode ketat secara default, sehingga Anda tidak perlu menambahkan pernyataan `use_strict` dalam kode fungsi Anda. Ini tidak dapat diubah.

------

## Objek primitif
<a name="primitive-objects"></a>

Objek primitif ES berikut dan fungsinya didukung.

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

Objek berikut didukung:
+ `Object.assign()`
+ `Object.entries()` 
+ `Object.hasOwn()`
+ `Object.keys()` 
+ `Object.values()`
+ `delete` 

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

String berikut didukung:
+  `String.prototype.length()` 
+  `String.prototype.charAt()` 
+  `String.prototype.concat()` 
+  `String.prototype.endsWith()` 
+  `String.prototype.indexOf()` 
+  `String.prototype.lastIndexOf()` 
+  `String.raw()` 
+  `String.prototype.replace()`
**catatan**  
Ekspresi reguler tidak didukung.   
Namun, konstruksi ekspresi reguler bergaya Java didukung dalam parameter yang disediakan. Untuk informasi lebih lanjut lihat [Pola](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html).
+ `String.prototype.replaceAll()`
**catatan**  
Ekspresi reguler tidak didukung.  
Namun, konstruksi ekspresi reguler bergaya Java didukung dalam parameter yang disediakan. Untuk informasi lebih lanjut lihat [Pola](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 ]

Angka-angka berikut didukung:
+  `Number.isFinite` 
+  `Number.isNaN` 

------

## Objek dan fungsi bawaan
<a name="built-in-objects-functions"></a>

Fungsi dan objek berikut didukung.

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

Fungsi matematika berikut didukung:
+  `Math.random()` 
+  `Math.min()` 
+  `Math.max()` 
+  `Math.round()` 
+  `Math.floor()` 
+  `Math.ceil()` 

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

Metode array berikut didukung:
+ `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()`
**catatan**  
`Array.prototype.sort()`tidak mendukung argumen.
+ `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 ]

Objek konsol tersedia untuk debugging. Selama eksekusi kueri langsung, log/error pernyataan konsol dikirim ke Amazon CloudWatch Logs (jika logging diaktifkan). Selama evaluasi kode dengan`evaluateCode`, pernyataan log dikembalikan dalam respons perintah.
+ `console.error()`
+ `console.log()`

------
#### [ Function ]
+ `call`Metode `apply``bind`,, dan tidak didukung.
+ Tidak mendukung konstruktor fungsi.
+ Melewati fungsi sebagai argumen tidak didukung.
+ Panggilan fungsi rekursif tidak didukung.

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

Metode JSON berikut didukung:
+ `JSON.parse()`
**catatan**  
Mengembalikan string kosong jika string diurai tidak valid JSON.
+ `JSON.stringify()`

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

Proses asinkron tidak didukung, dan janji tidak didukung.

**catatan**  
Akses jaringan dan sistem file tidak didukung dalam `APPSYNC_JS` runtime di AWS AppSync. AWS AppSync menangani semua operasi I/O berdasarkan permintaan yang dibuat oleh AWS AppSync resolver atau fungsi. AWS AppSync 

------

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

Mendukung konstanta global berikut:
+  `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`

## Jenis kesalahan
<a name="error-types"></a>

Melempar kesalahan dengan `throw` tidak didukung. Anda dapat mengembalikan kesalahan dengan menggunakan `util.error()` fungsi. Anda dapat menyertakan kesalahan dalam respons GraphQL Anda dengan menggunakan fungsi tersebut. `util.appendError`

Untuk informasi selengkapnya, lihat [Kesalahan utils.](https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html#utility-helpers-in-error-js)