このコードをテキストファイルに保存し、コマンドラインでノードを使用して実行したときに、このコードの実行で問題が発生しました。
let x;
{k1: x = null } = {k1: "Hello"};
console.log(x);
これを実行すると、代入演算子が無効であるときにエラーがスローされます。
ただし、コードがノードインタープリターに直接入力されると、"Hello"
私が期待しているものが出力されます。
誰もがこれが何であるか知っていますか?アイデアは、デフォルト値でクラスを構築し、同じメソッドを使用してクラスを更新し、何かが不足しているときに現在の値を再利用することです。
宣言なしで割り当てを使用する必要があります
let x;
({k1: x = null } = {k1: "Hello"});
あるいは単に:
let { k1: x = null } = { k1: "Hello" };
宣言なしでオブジェクトリテラルの非構造化代入を使用する場合、代入ステートメントを囲む丸括弧(...)は必須の構文です。
{a、b} = {a:1、b:2}は、左側の{a、b}がオブジェクトリテラルではなくブロックと見なされるため、有効なスタンドアロン構文ではありません。
ただし、({a、b} = {a:1、b:2})は有効であり、var {a、b} = {a:1、b:2}も有効です。
注:(...)式の前にはセミコロンを付ける必要があります。そうでない場合は、前の行で関数を実行するために使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加