

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# サポートされているランタイム機能
<a name="supported-features"></a>

以下のセクションでは、APPSYNC\$1JS ランタイムでサポートされる機能セットについて説明します。

## 主要機能
<a name="core-features"></a>

次の主要機能がサポートされています。

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

次のタイプの BGP がサポートされています。
+ 数字
+ 文字列
+ ブール値
+ objects
+ 配列
+ 関数

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

次のような演算子がサポートされています。
+ 標準の数学演算子 (`+`、`-`、`/`、`%`、`*` など)
+ Null 合体演算子 (`??`) 
+ オプションのチェーニング (`?.`)
+ ビット演算子
+ `void` および `typeof` 演算子
+ スプレッド演算子 (`...`)

以下は、サポートされていない演算子です。
+ 単項演算子 (`++`、`--`、および `~`) 
+ `in` operator
**注記**  
`Object.hasOwn` 演算子を使用して、指定したプロパティが指定されたオブジェクト内にあるかどうかを調べます。

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

次のステートメントがサポートされています。
+ `const`
+ `let`
+ `var`
+ `break`
+ `else`
+ `for-in`
+ `for-of` 
+ `if`
+ `return`
+ `switch`
+ スプレッド構文

ただし、以下はサポートしていません。
+ `catch`
+ `continue`
+ `do-while`
+ `finally`
+ `for(initialization; condition; afterthought)`
**注記**  
ただし、サポートされている `for-in` および `for-of` 式は例外です。
+ `throw`
+ `try`
+ `while`
+ ラベル付きステートメント

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

以下の ES 6 [テンプレートリテラル](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)がサポートされています。
+ 複数行文字列
+ 式の補間
+ ネストテンプレート

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

以下の構文がサポートされています。
+ 関数宣言はサポートされています。
+ ES 6 アロー関数はサポートされています。
+ ES 6 REST パラメータ構文はサポートされています。

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

関数は Strict モードで動作するため、関数コードに `use_strict` ステートメントを追加する必要はありません。これは変更できません。

------

## プリミティブオブジェクト
<a name="primitive-objects"></a>

以下の ES プリミティブオブジェクトがサポートされています。

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

以下のオブジェクトがサポートされています。
+ `Object.assign()`
+ `Object.entries()` 
+ `Object.hasOwn()`
+ `Object.keys()` 
+ `Object.values()`
+ `delete` 

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

以下の文字列がサポートされています。
+  `String.prototype.length()` 
+  `String.prototype.charAt()` 
+  `String.prototype.concat()` 
+  `String.prototype.endsWith()` 
+  `String.prototype.indexOf()` 
+  `String.prototype.lastIndexOf()` 
+  `String.raw()` 
+  `String.prototype.replace()`
**注記**  
正規表現はサポートされていません。  
ただし、Java スタイルの正規表現コンストラクトは、指定されたパラメータでサポートされています。詳細については、「[パターン](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html)」を参照してください。
+ `String.prototype.replaceAll()`
**注記**  
正規表現はサポートされていません。  
ただし、Java スタイルの正規表現コンストラクトは、指定されたパラメータでサポートされています。詳細については、「[パターン](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 ]

次の番号がサポートされています。
+  `Number.isFinite` 
+  `Number.isNaN` 

------

## 組み込みオブジェクトと関数
<a name="built-in-objects-functions"></a>

以下の ES 5.1 グローバル関数がサポートされています。

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

次の Math 関数はサポートされていません。
+  `Math.random()` 
+  `Math.min()` 
+  `Math.max()` 
+  `Math.round()` 
+  `Math.floor()` 
+  `Math.ceil()` 

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

以下の配列メソッドがサポートされています。
+ `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()`
**注記**  
`Array.prototype.sort()` は引数はサポートしていません。
+ `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 ]

コンソールオブジェクトはデバッグに使用できます。ライブクエリの実行中、コンソールのログ/エラーステートメントが Amazon CloudWatch Logs に送信されます (ロギングが有効になっている場合)。`evaluateCode` でのコード評価中、コマンドレスポンスにログステートメントが返されます。
+ `console.error()`
+ `console.log()`

------
#### [ Function ]
+ `apply`、`bind` `call` メソッドはサポートされていません。
+ 関数コンストラクタはサポートされていません。
+ 関数を引数として渡すことはサポートされていません。
+ 再帰的な関数呼び出しはサポートされていません。

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

以下の JSON メソッドがサポートされています。
+ `JSON.parse()`
**注記**  
解析された文字列が有効な JSON でない場合は、空白の文字列を返します。
+ `JSON.stringify()`

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

非同期プロセスはサポートされておらず、Promise もサポートされていません。

**注記**  
ネットワークおよびファイルシステムへのアクセスは、 `APPSYNC_JS`ランタイム内ではサポートされていません AWS AppSync。 は、 AWS AppSync リゾルバーまたは AWS AppSync 関数によって行われたリクエストに基づいて、すべての I/O オペレーション AWS AppSync を処理します。

------

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

以下のグローバル定数がサポートされています。
+  `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`

## エラータイプ
<a name="error-types"></a>

`throw` でエラーをスローすることはサポートされていません。`util.error()` 関数を使用するとエラーを返すことができます。`util.appendError` 関数を使用して GraphQL レスポンスにエラーを含めることができます。

詳細については、「[エラー utils](https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html#utility-helpers-in-error-js)」を参照してください。