1.1 νμ΄νν¨μμ κΈ°λ³Έ μ μΈ
첫 λ²μ§Έλ‘ νμ΄ν ν¨μμ λν΄μ μμλ³΄κ³ μ ν©λλ€. μ κ° ES6 λ¬Έλ²μ μ νμ λ κ°μ₯ λ¨Όμ λ³Έ λ μ μ€μ νλ μ λλ€. κΈ°μ‘΄μ μλ°μ€ν¬λ¦½νΈμμλ κ·Έλ¬κ³ , cμΈμ΄λ μλ°μμλ ν¨μλΌλμ§ λ°λ³΅λ¬Έκ°μ νλμ λ©μ΄λ¦¬μ νλ‘μΈμ€λ λ μ€κ΄νΈλ‘ λ¬Άλ λ°©λ²μ΄μμ΅λλ€.
κ·Έλ°λ° ES6μμ νμ΄ν ν¨μλΌλ κ²μ΄ λ±μ₯νκ² λμμ΅λλ€.
βμ΄λ»κ² μ겨먹μλκ°??
κΈ°μ‘΄μ ν¨μμμ±λ°©μκ³Ό λΉκ΅ν΄μ μμλ³΄κ² μ΅λλ€. μΉ μμμ ν¬λ‘¬ κ°λ°μλꡬλ₯Ό μ΄μ©ν΄μ ν μ€νΈλ₯Ό μ§ννκ² μ΅λλ€.
html νΌμ νλ λ§λ€μ΄μ μλ°μ€ν¬λ¦½νΈ νμΌμ νΈμΆν΄μ μμ±νμ λ λκ³ κ·Έλ₯ ν¬λ‘¬ νμ΄μ§μμ μ§μ μμ±ν΄λ μκ΄ μμ΅λλ€.
arrow.html
1 2 3 4 5 6 7 8 9 10 11 12 | <!DOCTYPE html> <html> <head> <title>Arrow</title> <meta charset="utf-8" /> </head> <body> <script src="arrow.js"></script> </body> </html> | cs |
μ΄λ° μμΌλ‘ arrow.js νμΌμ νΈμΆνλ μ무 κ²λ μλ html νΌμ λ§λ€μ΄μ μ§νν΄λ³΄κ² μ΅λλ€.
arrow.js
1 2 3 4 | function arrow() { console.log('arrow') } arrow(); | cs |
μ΄κ² μ°λ¦¬κ° κΈ°μ‘΄μ μλ ν¨μμ μμ±κ³Ό νΈμΆλ°©λ²μ λλ€. ν΄λΉ μ½λλ₯Ό μμ±νκ³ ν¬λ‘¬ κ°λ°μλꡬμμ μ½μμ νμΈνλ€λ©΄
μ΄λ°μμΌλ‘ λμ€κ² μ£ ? ν¨μλ₯Ό λ§λ‘μ¨ μ€λͺ νλ€λ©΄ arrowλΌλ μ΄λ¦μ ν¨μκ° μλλ° ν΄λΉ ν¨μλ₯Ό νΈμΆνλ©΄ arrowλΌλ μ½μμ΄ μ°νλλ§€μ° κ°λ¨ν λ΄μ©μ΄μ£ νμ΄νν¨μλ‘ λ°κΏμ μμ±ν΄λ³΄κ² μ΅λλ€.
1 2 3 4 | var arrow = ()=>{ console.log('arrow') } arrow() | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | function boardSearchFunction(opt,word,callback) { let res = {'res':'null'} if(opt.opt=='μμ±μ'){ models.User.findAll({ where:{name:word.word} }).then(function(user){ models.Board.findAll({ where:{fk_userId: user[0].dataValues.id} }).then(function(user){ callback(user) }) }).catch(function(err){ callback(res) }) } else if(opt.opt=='μ λͺ©'){ let i = 0 let names=[] models.Board.findAll({ where: {subject:word.word} }).then(function(board){ if(board.length==0) callback(res) board.forEach(function(element){ models.User.findAll({ where: {id: element.dataValues.fk_userId} }).then(function(user){ names[i] = {'name':user[0].dataValues.name} i++ if(board.length==i) callback(board,names) }) }) }).catch(function(err){ callback(res) }) } else callback(res) } | cs |
μ΄λ° ν¨μκ° μλ€κ³ κ°μ ν΄λ³΄κ² μ΅λλ€. ν¨μκ° μ΄λ»κ² μλνλ μ§ λ³΄λ €κ³ νλκ² μλλΌ ν¨μ μμ±λ°©μμ λ°κΏ¨μ λ μ΄λ»κ² 보μ΄λμ§ νμΈνκΈ° μν¨ μ λλ€.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | var boardSearchFunction => (opt,word,callback) { let res = {'res':'null'} if(opt.opt=='μμ±μ'){ models.User.findAll({ where:{name:word.word} }).then((user)=>{ models.Board.findAll({ where:{fk_userId: user[0].dataValues.id} }).then((user)=>{ callback(user) }) }).catch((err)=>{ callback(res) }) } else if(opt.opt=='μ λͺ©'){ let i = 0 let names=[] models.Board.findAll({ where: {subject:word.word} }).then((board)=>{ if(board.length==0) callback(res) board.forEach((element)=>{ models.User.findAll({ where: {id: element.dataValues.fk_userId} }).then((user)=>{ names[i] = {'name':user[0].dataValues.name} i++ if(board.length==i) callback(board,names) }) }) }).catch((err)=>{ callback(res) }) } else callback(res) } | cs |
μΌλ¨ κΈ°λ³Έμ μΌλ‘ function λ¨μ΄ μμ²΄κ° λͺ¨λ μ¬λΌμ§κ³ νμ΄ν => λ‘ λ°λ κ²μ λ³Ό μ μμ΅λλ€. μμ²λκ² κ°κ²° ν΄μ‘λ€κ³ νκΈ°λ μ΄λ €μΈ μλ μκ² μ§λ§ νμ΄ν ν¨μλ₯Ό μ¬μ©νλ νλμ μ΄μ μ΄κΈ°λ ν©λλ€.
μμμ λ§νλ€μνΌ νμ΄νν¨μλ λ°λμ μ΅λͺ ν¨μ λ‘λ§ μ¬μ©ν μ μμ΅λλ€. κ·Έλ κΈ°λλ¬Έμ ν¨μλͺ μ΄ νμνμ§ μμ μ½λ°±ν¨μλ‘ μ¬μ©νκΈ°μ μμ£Ό μ’μ£ . μμ μ½λλ μ½λ°±ν¨μλ₯Ό νμ΄νν¨μλ‘ λ°κΏ¨κΈ°λλ¬Έμ νΉλ³ν μ μ½μμ΄ μμ λ‘κ² μ¬μ©ν μ μμμ΅λλ€.
κΈ°λ³Έμ μΈ μ μΈμ ννλ₯Ό μ΄ν΄λ³΄μλλ° νμ΄ν ν¨μμ νΉμ§μλ μ΄λ° κ²λ€μ΄ μμ΅λλ€.
νμ΄ν ν¨μ νν(arrow function expression)μ function ννμ λΉν΄ κ΅¬λ¬Έμ΄ μ§§κ³ μμ μ this, arguments, super λλ new.targetμ λ°μΈλ© νμ§ μμ΅λλ€. νμ΄ν ν¨μλ νμ μ΅λͺ μ λλ€.
μ΄ λΆλΆμ λ€μ ν¬μ€ν μμ μ΄ν΄λ³΄λλ‘ νκ² μ΅λλ€.