問題タブ [destructuring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
798 参照

javascript - タプル要素を分割代入で入れ替える

次のように、破壊割り当てを使用して、タプルの要素をその場で交換することを考えました。

ただし、これにより が得られ[1, 1]ます。

Babel はこれを次のようにコンパイルします。

これは次のようにコンパイルする必要があると思っていたでしょう

Traceur は、babel と同じように動作します。だから私はこれが指定された動作だと思いますか?

2 つの要素をその場で交換したい。唯一の方法です...

しかし、上記のことは、破壊的な代入が私がしなければならないことを回避できるはずのものだと思いました。

私は配列の 2 つの要素の順序を完全に逆にすることができるので、それは私の質問ではありません。のような単純なことを行うことができますa.push(a.shift())。これは、スワッピングがインプレースであるという基準を満たしています。

ここで私が最も興味を持っているのは、なぜ分解が本来あるべきように機能しないのかということです。

0 投票する
3 に答える
9921 参照

javascript - ES2015 ですべてのプロパティを現在のスコープ/クロージャに分解するにはどうすればよいですか?

私はこのようなことをしたいと思います:

これを行う方法を見つけたり、理解したりすることはできませんが、以前にどこかで見たことがあると本当に思っていました! :P

注:私は;に設定してBabelを使用しています。stage0

コンテキスト:私はJSXでよりドライにしようとしていますが、参照this.statethis.propsどこでもではありません。また、データが変更された場合に、構造を解除するためにプロパティを追加し続ける必要もありません。

0 投票する
2 に答える
2674 参照

javascript - オブジェクト分解構文 - ES6

私はよく理解されている配列の構造化構文を経験していました。

私たちが言うとき、私たちは以下で正確に何をしていますvar {p, q} = o;か?

and inは、 ie、andのプロパティpqvar {p, q}異なりますか? もし、そうなら、o'p''q'

なぜvar {a, b} = o;機能しないのですか?

*注: 辞書のキーは JavaScript の文字列リテラルであることを知りました。*

0 投票する
5 に答える
34419 参照

arrays - 配列を分解するときの型

そのようなことを書くことは可能ですか?

0 投票する
2 に答える
211 参照

javascript - chrome/chromium 44 の destructuring ステートメントが認識されない

私の知る限り、これは有効な EcmaScript6 です。

Firefox はこのコードを問題なく実行しますが、Google Chrome と Chromium の両方で次のエラーが発生します。

Firefox では、これを機能させるには type 属性でスクリプト タグに「version=1.7」のフラグを付ける必要がありますが、Google Chrome ではスクリプトが無視されます。通常のスクリプト タグでは、このエラーが発生します。

これは、この機能が Google Chrome に実装されていないということですか? または、何か不足していますか?

0 投票する
2 に答える
478 参照

javascript - Babel の ES6 オブジェクト分解の実装は正しいですか?

したがって、基本的なデスクチャリングは問題なく、{a, b} = objトランスパイルはa = obj.a; b = obj.b.

私の質問は、偶然出くわした少し奇妙な構文に関するもので、見つからないので誰かが仕様を教えてくれるかどうか疑問に思っています:

それは 2 つab代入を行い、次に戻りますobj.c。私が書くことができるように、実際にはバイトストリームデコーダーにとって非常に便利です。

私の問題は、この構文をどこにも見たことがなく、間違って実装されているか、提案段階にあるものに依存したくないということです。

0 投票する
1 に答える
18942 参照

javascript - クラスコンストラクターでのES6破壊

これはばかげているように聞こえるかもしれませんが、我慢してください。コンストラクターでオブジェクトをクラスプロパティに分解するための言語レベルでのサポートがあるかどうか疑問に思います。

0 投票する
1 に答える
1790 参照

compiler-errors - Typescript での構造化解除により、コンパイラ エラー TS1008 および TS1005 が発生する

タイプスクリプト、サンプルコードで構造化を使用したい:

私のコンパイルコマンドtsc --t es5 destructuring.ts

タイプスクリプト版1.6.2

IDE はvs code.

次に、3 つのエラーが発生します。

destructuring.ts(1,5): error TS1008: Unexpectedtoken; 'identifier' expected.

destructuring.ts(1,21): error TS1008: Unexpected token; 'module, class, interface, enum, import or statement' expected.

destructuring.ts(1,45): error TS1005: ';' expected.;

私のデスクトップ(ウィンドウ8.1 x64)では、コマンドnpm -g list、ショーtypescript@1.6.2、およびコマンド tsc --versionショーVersion 1.0.3.0

タイプスクリプト 1.0.3.0

しかし、私のラップトップ(Windows 7 x64)では、コマンドは次のようにtsc --version表示されmessage TS6029: Version 1.6.2ます: タイプスクリプト1.6.2