タグ付けされた質問 「ecmascript-6」

ECMAScript仕様の2015バージョン。現在は標準(ECMAScript 2015)。このタグは、質問がECMAScript 2015で提供される新機能または技術変更に特に関連する場合にのみ使用してください。

5
webpackを使用してディレクトリから画像を動的にインポートする
ES6を介して画像とアイコンをwebpackにインポートするための現在のワークフローは次のとおりです。 import cat from './images/cat1.jpg' import cat2 from './images/cat2.svg' import doggy from './images/doggy.png' import turtle from './images/turtle.png' <img src={doggy} /> これはすぐに乱雑になります。ここに私が欲しいものがあります: import * from './images' <img src={doggy} /> <img src={turtle} /> 特定のディレクトリからすべてのファイルを拡張子ではなく名前として動的にインポートし、必要に応じてそれらのファイルを使用する方法が必要だと思います。 これが行われたのを見た人、またはそれについて最善の方法を考えている人はいますか? 更新: 選択した答えを使用して、これを行うことができました: function importAll(r) { let images = {}; r.keys().map((item, index) => { images[item.replace('./', '')] = r(item); …


10
ES6でスーパーを使用せずにクラスを拡張する方法は?
super親クラスを呼び出すメソッドを呼び出さずにES6でクラスを拡張することは可能ですか? 編集:質問は誤解を招く可能性があります。私たちが呼び出さなければならないのは標準super()ですか、それとも何か不足していますか? 例えば: class Character { constructor(){ console.log('invoke character'); } } class Hero extends Character{ constructor(){ super(); // exception thrown here when not called console.log('invoke hero'); } } var hero = new Hero(); super()派生クラスを呼び出さないとき、スコープの問題が発生します->this is not defined 私はこれをiojs --harmony with v2.3.0で実行しています

3
babelを使用する場合、jsが必要ですか?
ES6を試してみたり、gulpを使用してビルドしたり、Babelを使用してES5にトランスパイルしたりしています。出力はノードで実行されておらず、タグ付きの.htmファイルからリンクされています。追加する必要があると思います <script src='require.js'></script> またはそのようなもの。 インポート/エクスポートしようとしています。 ////////////////scripts.js import {Circle} from 'shapes'; c = new Circle(4); console.log(c.area()); /////////////////shapes.js export class Circle { circle(radius) { this.radius = radius; } area() { return this.radius * this.radius * Math.PI; } } エラーは Uncaught ReferenceError: require is not defined これを参照します(gulpの.pipe(babel())の後) var _shapes = require('shapes');

11
スプレッド構文を使用したES6のディープコピー
配列ではなくオブジェクトで機能するReduxプロジェクトのディープコピーマップメソッドを作成しようとしています。Reduxでは、各状態は以前の状態で何も変更すべきではないことを読みました。 export const mapCopy = (object, callback) => { return Object.keys(object).reduce(function (output, key) { output[key] = callback.call(this, {...object[key]}); return output; }, {}); } できます: return mapCopy(state, e => { if (e.id === action.id) { e.title = 'new item'; } return e; }) ただし、内部アイテムはディープコピーされないため、次のように調整する必要があります。 export const mapCopy = (object, callback) => …

3
JSONはセットを文字列化します
どのようにでしょうJSON.stringify()セット? Chromium 43で機能しなかったもの: var s = new Set(['foo', 'bar']); JSON.stringify(s); // -> "{}" JSON.stringify(s.values()); // -> "{}" JSON.stringify(s.keys()); // -> "{}" シリアル化された配列に似たものが得られると思います。 JSON.stringify(["foo", "bar"]); // -> "["foo","bar"]"


3
varを使用しないオブジェクトの分解
オブジェクトの構造化の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 …

2
解決後もJavaScript ES6プロミスが実行を続けるのはなぜですか?
promiseはresolve()またはreject()を実行できるものであることを理解しているので、resolveまたはrejectが呼び出された後も、promiseのコードが実行され続けることに驚いた。 すべての即時の関数実行を停止する、exitまたはreturnの非同期フレンドリーバージョンであることを解決または拒否することを検討しました。 次の例でresolveの呼び出し後にconsole.logが表示されることがある理由を誰かが説明できますか。 var call = function() { return new Promise(function(resolve, reject) { resolve(); console.log("Doing more stuff, should not be visible after a resolve!"); }); }; call().then(function() { console.log("resolved"); }); jsbin

13
.map()Javascript ES6マップ?
これをどのように行いますか?本能的に、私はしたい: var myMap = new Map([["thing1", 1], ["thing2", 2], ["thing3", 3]]); // wishful, ignorant thinking var newMap = myMap.map((key, value) => value + 1); // Map { 'thing1' => 2, 'thing2' => 3, 'thing3' => 4 } 新しい反復プロトコルに関するドキュメントからはあまり収集していません。 私はを認識していwu.jsが、私は実行しているバベルのプロジェクトを含めたくないTraceur、それは現在に依存のようにそれはそうと。 また、fitzgen /wu.jsがどのようにそれを自分のプロジェクトに取り入れたかを抽出する方法についても少しわかりません。 私がここで欠けているものの明確で簡潔な説明が欲しいです。ありがとう! ES6マップのドキュメント、FYI


6
javascriptES6クラスインスタンスのクローンを作成する方法
ES6を使用してJavascriptクラスインスタンスのクローンを作成するにはどうすればよいですか。 jqueryまたは$ extendに基づくソリューションには興味がありません。 問題が非常に複雑であることを示唆するオブジェクトのクローン作成に関するかなり古い議論を見てきましたが、ES6では非常に単純な解決策が提示されます-以下にそれを置き、人々がそれで十分だと思うかどうかを確認します。 編集:私の質問は重複していることが示唆されています。私はその答えを見ましたが、それは7歳であり、ES6以前のjsを使用した非常に複雑な答えを含んでいます。ES6を可能にする私の質問には、劇的に単純な解決策があることを示唆しています。

6
ES6オブジェクトのメソッド:矢印関数の使用
ES6では、これらは両方とも合法です。 var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } }; そして、速記として: var chopper = { owner: 'Zed', getOwner() { return this.owner; } } 新しい矢印機能も使用できますか?のようなことを試みることで var chopper = { owner: 'John', getOwner: () => { return this.owner; } }; または var chopper = { owner: 'John', getOwner: …


6
タイプスクリプトでスプレッド構文と新しいSet()を使用する
次のコードを使用して一意の番号を取得しています。 let uniques = [ ...new Set([1, 2, 3, 1, 1]) ]; // [1, 2, 3] ただし、typescriptは次のエラーを報告します:Type'Set 'は配列型ではありません。 私はtypescript忍者ではありません、誰かがここで何が悪いのか教えてもらえますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.