[TIL] Modern JavaScript
矢印関数
const add = function (x, y) {
return x + y;
}
const add = (x, y) => x + y;
矢印関数の場合は、関数を省略できます.関数の内容がreturn 1行の場合は、カッコを省略することもできます.const getStudentAvg = arr => {
return arr
.filter(person => person.job === 'student')
.reduce((sum, person) => (sum + person.grade), 0);
}
関数の内容がreturnを含む複数行の場合は、カッコを省略することもできます.Spread/Rest構文
let arrayToSpread = [1, 2];
add(...arrayToSpread); // 3
let arrayFromSpread = ...arrayToSpread;
console.log(arrayFromSpread); // [1, 2]
構造分解の割り当て
配列またはオブジェクトのプロパティを分解することで、その値を各変数に含める式.
var o = {p: 42, q: true};
var {p, q} = o;
console.log(p); // 42
console.log(q); // true
function whois({displayName: displayName, fullName: {firstName: name}}){
console.log(displayName + " is " + name);
}
let user = {
id: 42,
displayName: "jdoe",
fullName: {
firstName: "John",
lastName: "Doe"
}
};
whois(user); // "jdoe is John"
userという名前のobject属性を分解し、displayName、nameなどの変数に入れてアクセスします.node.js
// script1.js
const module2 = require('./script2.js');
// script2.js
console.log('this is module 2');
モジュールまたはスクリプトはrequire文でロードできます.// script1.js
const module2 = require('./script2.js')
console.log(modules2) // 'this is module 2'
// script2.js
module.exports = 'this is module 2'
module.exportsを使用して、作成したモジュールを他のスクリプトからロードできます.ドアに戻るのと同じです.module.exports.hello = true; // Exported from require of module
exports = { hello: false }; // Not exported, only available in the module
エクスポートはモジュールです.exportsを参照するショートカットとして、他のオブジェクトを直接exportsに再割り当てすると、モジュールではありません.exportsは参照されていないため、他のスクリプトでは使用できません.classes & instances
class Student {
constructor(commitment, course, wave, name) {
this.commitment = commitment;
this.course = course;
this.wave = wave;
this.name = name;
}
getDisplayName () {
return `${this.commitment} ${this.course} ${this.wave} ${this.name}`;
}
printDisplayName () {
console.log(this.getDisplayName());
}
}
let me = new Student('Full', 'IM', '28', '도하영');
me.printDisplayName() // 'Full IM 28 도하영'
function methods
call vs apply
この値を明示的に指定するときに使用する呼び出し方法.最初のパラメータは常にこの値を入力します.操作は同じですが、call()はパラメータリストを受け入れ、apply()はパラメータ配列を受け入れます.
bind
呼び出しメソッドは、.callと同様に、すぐに実行される関数ではなく、バインドされた関数を返します.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
Reference
この問題について([TIL] Modern JavaScript), 我々は、より多くの情報をここで見つけました https://velog.io/@sparklingwater/JavaScript-Modern-JavaScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol