JavaScript ES6 (variable, arrow function)
4252 ワード
この文章は私の最初の文章になった.
羽毛センターで整理しながら書き復習しながら書きます
不足点はございますが、ご覧になっていただければ助かります.😃
今日はJavaScriptからES 6の文法を知りましょう.
1.変数
JavaScriptはこれまでvar、const変数を使用してきました.ES 6はlet、constをサポートしています. const:変更できない変数宣言. let:変数の宣言方法. ここの
まず、違いを知る前に、アップグレードの概念を理解する必要があります.
簡単に言えば、昇格は、コードを構築するときにどこで宣言しても、宣言をコードの上部に昇格させることを意味します.すなわち、変数を宣言する前に変数を呼び出すと、コードは正常に動作します.
†††異なる点†† var:クレーン. let:重くない. =>なので、後でletを使うことをお勧めします.varはクレーンなので、コードを書くときに異常が発生する可能性があります.
2. Blocks and IIFEs
=>IIFEは、Immedially Invoked Function Expressionの略で、定義と同時に即時に実行される関数です.
ES 6にインスタント実行関数を書き込むようにコードを直接見てみましょう.
3. Strings ES 5は+を使用して文字列と値を接続します. であるが、ES 6は 文字列などの値を渡すには、カッコを使用して保護する必要があります. 4. Arrow Function
array.map->foreachと同様に、配列内の各要素を巡り、コールバック関数を実行します.コールバックで返される値を配列にします.
矢印関数にはこの機能はありません.
thisとargumentsはバインドされません.
羽毛センターで整理しながら書き復習しながら書きます
不足点はございますが、ご覧になっていただければ助かります.😃
今日はJavaScriptからES 6の文法を知りましょう.
1.変数
JavaScriptはこれまでvar、const変数を使用してきました.ES 6はlet、constをサポートしています.
var
とlet
はいったいどんな違いがありますか?という疑問があるかもしれません.まず、違いを知る前に、アップグレードの概念を理解する必要があります.
簡単に言えば、昇格は、コードを構築するときにどこで宣言しても、宣言をコードの上部に昇格させることを意味します.すなわち、変数を宣言する前に変数を呼び出すと、コードは正常に動作します.
†††異なる点††
2. Blocks and IIFEs
=>IIFEは、Immedially Invoked Function Expressionの略で、定義と同時に即時に実行される関数です.
ES 6にインスタント実行関数を書き込むようにコードを直接見てみましょう.
//ES6
{
const a = 1;
let b = 2;
console.log(a + b);
}
//ES5
(function () {
var c = 3;
})();
コードでご覧のように、カッコを包んでコンテンツを作成すると、すぐに実行関数になります.3. Strings
//ES5
console.log("this " + name + age + " hihi");
//ES6
console.log(`this is ${age} , ${name} hihi`);
// backticks 를 사용하면 된다. 그리고 ${} 로 값을 전달
const n = `${name} ${age}`;
console.log(n.startsWith("h")); // 시작
console.log(n.endsWith("0")); // 끝
console.log(n.includes("jj")); // 포함하는지 판단.
${값}
の形で値を提供することができる.()=>{}
array.map->foreachと同様に、配列内の各要素を巡り、コールバック関数を実行します.コールバックで返される値を配列にします.
矢印関数にはこの機能はありません.
thisとargumentsはバインドされません.
const year = [1990, 1965, 1996, 2000];
//ES5
var ages5 = year.map(function (el) {
return 2020 - el;
});
//ES6
let ages6 = year.map((el) => 2020 - el);
console.log(ages6);
ages6 = year.map((el, index) => `age : ${index + 1} : ${2020 - el}`); // 인자가 2개인 경우.
//ES5
var box5 = {
color: "green",
pos: 1,
click: function () {
// -> click function 은 box5 object의 method 이기 때문에 this를 가지고 있다.
document.querySelector(".green").addEventListener("click", function () {
var str = "this is box number" + this.pos + this.color;
//addEventListener 에 있는 function 은 method가 아니기 때문에 this가 없다.
alert(str);
});
},
};
box5.click();
//ES6
const box6 = {
color: "green",
pos: 1,
click: function () {
document.querySelector(".green").addEventListener("click", () => {
var str = "this is box number" + this.pos + this.color;
// -> arrow function은 click 의 this를 가지고 올 수 있다. (from surrouding)
alert(str);
});
},
};
box6.click();
//Another case
const box6 = {
color: "green",
pos: 1,
click: () => { // arrow function 으로 변경. -> this는 외부 window를 가리킨다. (this 를 바인딩하지 않기 때문)
document.querySelector(".green").addEventListener("click", () => {
var str = "this is box number" + this.pos + this.color;
alert(str);
});
},
};
box6.click(); // result: undefined
//ES5
function Person(name) {
this.name = name;
}
Person.prototype.myFriends = function (friends) {
var arr = friends.map(function (el) {
return this.name + "is friend with" + el;
}); // .bind(this) 를 하면 작동한다.
console.log(arr);
};
var friends = ["solji", "heeje", "bob"];
new Person("john").myFriends(friends); // this.name is undefined.
//ES6
function Person(name) {
this.name = name;
}
Person.prototype.myFriends = function (friends) { // object 의 method.
var arr = friends.map((el) => { // 외부 this 를 가리키기 때문에 this 는 Person을 가리킴.
return this.name + "is friend with" + el;
});
console.log(arr);
};
var friends = ["solji", "heeje", "bob"];
new Person("john").myFriends(friends);```
Reference
この問題について(JavaScript ES6 (variable, arrow function)), 我々は、より多くの情報をここで見つけました https://velog.io/@holim0/JavaScript-ES6-variable-arrow-functionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol