[解決済み] var、let、const を使わないオブジェクトのデストラクチャリング
2022-05-13 07:16:16
質問
オブジェクトの再構築で
var
キーワードが前にない場合、エラーを投げるのはなぜですか?
{a, b} = {a: 1, b: 2};
投げる
SyntaxError: expected expression, got '='
次の3つの例は問題なく動作します。
var {a, b} = {a: 1, b: 2};
var [c, d] = [1, 2];
[e, f] = [1, 2];
ボーナス質問です。なぜ
var
は必要ないのでしょうか?
のようなことをすると、問題にぶつかりました。
function () {
var {a, b} = objectReturningFunction();
// Now a and b are local variables in the function, right?
// So why can't I assign values to them?
{a, b} = objectReturningFunction();
}
どのように解決するのですか?
この問題は
{...}
演算子が JavaScript で複数の意味を持つことに起因しています。
いつ
{
の先頭に表示されます。
ステートメント
を表す場合、それは常に
ブロック
を表し、これは代入できません。もしそれが後で
ステートメント
として
式
であれば、それはObjectを表します。
は
var
は、この区別をするのに役立ちます。
ステートメント
のように
グループ化された括弧
:
( {a, b} = objectReturningFunction() );
<ブロッククオート
注意事項 代入文を囲む括弧( ... )は、宣言なしでオブジェクトリテラルによる構造化代入を使用する場合に必要です。
{a, b} = {a: 1, b: 2} は、左辺の {a, b} がオブジェクトリテラルではなくブロックとみなされるため、スタンドアロン構文としては有効ではありません。
しかし、({a, b} = {a: 1, b: 2}) は有効であり、var {a, b} = {a: 1, b: 2} も同様です。
( ... )式の前にはセミコロンが必要です。さもないと、前の行の関数を実行するために使われる可能性があります。
関連
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
vueディレクティブv-bindの使用と注意点
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】JavaScriptのオブジェクトの長さ
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vueネットワークリクエストソリューション ネイティブネットワークリクエストとjsネットワークリクエストライブラリ
-
JSアレイループと効率解析の比較
-
[解決済み】ローカルファイルを開くことができません - Chrome: ローカルリソースの読み込みが許可されていない
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】JavaScriptでインラインIF文の書き方は?
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された
-
[解決済み] 既に定義されている変数にオブジェクトをデストラクチャする方法は?重複