js
1let { chapter, section, exercise } = this.findByExerciseId( 2 course, 3 exerciseId 4 );
上記コード、letの後の{}はどのような役割ですか??
変数をいくつか宣言するのにはカンマだけでいいという認識なのですが
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
中括弧を使った記法は分割代入といって、単なる変数宣言とは意味が違います(MDN)。
javascript
1// 以下のコードと同じ意味 2const ret = this.findByExerciseId( 3 course, 4 exerciseId 5 ); 6 7let chapter = ret.chapter, section = ret.section, exercise = ret.exercise;
投稿2018/03/13 01:56
総合スコア145184
0
「オブジェクトの分割代入」というものです。
【分割代入 - JavaScript | MDN】
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#オブジェクトの分割代入
【《JavaScript》ES6の分割代入のはじめかた。 - Qiita】
https://qiita.com/uto-usui/items/a9d17447fe81c17c41fa#オブジェクトの分割代入
投稿2018/03/13 01:58
総合スコア69407
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ES2015で追加された分割代入という構文です。
分割代入 - MDN
右辺はオブジェクト固定であり、
左辺では右辺のオブジェクトを分割しながら変数を宣言します。
JavaScript
1const hoge = {foo: 123, bar: 234}; 2let {foo, bar, piko} = hoge; 3console.log(foo, bar, piko); // 123, 234, undefined
この様にJavaScriptは下位互換を残しつつも、
ES2015では様々なモダンな構文を追加しているので、
ES2015の構文をバリバリに活用したコードはES5までのコードと比べて別次元のように違います。
ES2015やES6といったワードで検索してみてください。
投稿2018/03/13 02:36
編集2018/03/13 02:37総合スコア21158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
サンプルコード
// 1つのオブジェクトを返すデモ関数 function findSiteById(id) { return { id: 1, name: 'teratail', type: 'web', image: 'default.jpg' } } // 複数のオブジェクトを持つ配列を返すデモ関数 function findSitesByType(type) { return [ { id: 1, name: 'teratail', type: 'web', image: 'default.jpg' }, { id: 2, name: 'facebook', type: 'web', image: 'default.jpg' }, { id: 3, name: 'yahoo', type: 'web', image: 'default.jpg' }, { id: 4, name: 'google', type: 'web', image: 'default.jpg' } ] } //オブジェクトの分割代入 const { id, name, ...params } = findSiteById(1); console.log(id); //1 console.log(name); //teratail console.log(params); //{ type: 'web', image: 'default.jpg' } console.log('=========='); //配列の分割代入 const [a, b, ...rest] = findSitesByType('web'); console.log(a); //{ id: 1, name: 'teratail', type: 'web', image: 'default.jpg' } console.log(b); //{ id: 2, name: 'facebook', type: 'web', image: 'default.jpg' } console.log(rest); //[ { id: 3, name: 'yahoo', type: 'web', image: 'default.jpg' }, //{ id: 4, name: 'google', type: 'web', image: 'default.jpg' } ]
投稿2018/03/13 02:17
編集2018/03/13 02:26総合スコア2415
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。