// μΌλ°ν¨μ
function add(a, b) {
return a + b;
}
// νμ΄ν ν¨μ
(a,b) => { return a+b } - ν¨μ μ μΈλ¬Έ
// ν¨μ μ μΈλ¬Έ
function add1(x,y) {
return x+y;}- ν¨μ νν μ : λ³μλ₯Ό μ μΈνκ³ , ν¨μλ₯Ό λμ νλ μμ λ§ν©λλ€.
// νμ΄ν ν¨μ X
var add1 = function(x,y) {
return x + y;};
// νμ΄ν ν¨μ O
var add2 = (x,y) => { return x + y;} //function μμ
var add3 = (x,y) => return x+y //ν¨μμ λ΄μ©μ΄ return λ°μ μλ κ²½μ°// λ§€κ°λ³μ μ§μ λ°©λ²
() => { ... } // λ§€κ°λ³μκ° μμ κ²½μ°
x => { ... } // λ§€κ°λ³μκ° ν κ°μΈ κ²½μ°, μκ΄νΈλ₯Ό μλ΅ν μ μλ€.
(x, y) => { ... } // λ§€κ°λ³μκ° μ¬λ¬ κ°μΈ κ²½μ°, μκ΄νΈλ₯Ό μλ΅ν μ μλ€.
// ν¨μ λͺΈμ²΄ μ§μ λ°©λ²
x => { return x * x } // single line block
x => x * x // ν¨μ λͺΈμ²΄κ° νμ€μ ꡬ문μ΄λΌλ©΄ μ€κ΄νΈλ₯Ό μλ΅ν μ μμΌλ©° μ묡μ μΌλ‘ returnλλ€. μ ννκ³Ό λμΌνλ€.
// νΈμΆ λ°©λ²
const pow = x => x * x;
console.log(pow(10)); // 100ν¨μννμμ functionμ μμ νκ³ , νμ΄νλ₯Ό νμνλ λ°©λ²μΌλ‘ νκΈ°λ²μ΄ λ³κ²½λμμ΅λλ€. λν ν¨μμ λ΄μ©μ΄ return λ°μ μλ κ²½μ°, x,yλ₯Ό λ§€κ°λ³μλ‘ λ°μ ν, μ€κ΄νΈ μμ΄ λ°λ‘ 리ν΄ν©λλ€.
functionμμ μλ thisμ νμ΄νν¨μ μμμλ thisλ λ€λ₯Έ μν μ νλ€λ μ μ΄, μΌλ° ν¨μν νμ΄ν ν¨μμ κ°μ₯ ν° μ°¨μ΄μ μ λλ€.
//functionμμ μλ this
var relationship1 = {
name : 'zero',
friends : ['nero','hero','xero'],
logFriends : function() {
var that = this; //thisλ relationship1μ κ°λ₯΄ν΄
this.friends.forEach(function(friend){
console.log(that.name, friend);
});
},};
relationship1.logFriends();ν¨μ νΈμΆ λ°©μμ μν΄ thisμ λ°μΈλ©ν μ΄λ€ κ°μ²΄κ° λμ μΌλ‘ κ²°μ λ©λλ€. ν¨μλ₯Ό νΈμΆν λ ν¨μκ° μ΄λ»κ² νΈμΆλμλμ§μ λ°λΌ thisμ λ°μΈλ©ν κ°μ²΄κ° λμ μΌλ‘ κ²°μ λλ€.
: Functionμμ this λ μμ μ΄ μν΄μλ κ°μ²΄μ΄λ¦μ λ§ν©λλ€.
- νμ΄ν ν¨μ μμ μλ this
//νμ΄ν ν¨μ μμ μλ this
var relationship1 = {
name : 'zero',
friends : ['nero','hero','xero'],
logFriends() {
this.friends.forEach(friend =>{
//λ°λ‘ λ°μ μλ thisμ κ°μ κ²μΌλ‘ λ§λ€μ΄ μ€
console.log(this.name, friend);
});
},};
relationship1.logFriends();νμ΄ν ν¨μλ ν¨μλ₯Ό μ μΈν λ thisμ λ°μΈλ©ν κ°μ²΄κ° μ μ μΌλ‘ κ²°μ λλ€. λμ μΌλ‘ κ²°μ λλ μΌλ° ν¨μμλ λ¬λ¦¬ νμ΄ν ν¨μμ this μΈμ λ μμ μ€μ½νμ thisλ₯Ό κ°λ¦¬ν¨λ€.
λ³μλ ν¨μμ μ μΈλ§ 맨μλ‘ λμ΄μ¬λ €μ§λ μν©.
μλ°μ€ν¬λ¦½νΈμ νΉμ§μ€ νλ.
x = 2
console.log(x) // 2
var x = 0
console.log(x) // 0μ΄λ νΈμ΄μ€ν λλ¬Έμ λ€μκ³Ό κ°μ΄ μλλλ€.
var x;
x = 2
console.log(x); // 2
x = 0;
console.log(x) // 0μλλ μ€λ₯κ° λλ μν©μΈλ°λ μλ¬κ° λμ§ μλλ€! κ·Έλ κΈ° λλ¬Έμ μ½λ©ν λ μ‘°μ¬ν΄μΌ νκ³ , varκ° μλ let, constλ₯Ό μ°λ©΄ νΈμ΄μ€ν μ λ§μ μ μλ€.
x = 2
console.log(x); // x is not defined!! error
let x = 0