ํฐ์คํ ๋ฆฌ ๋ทฐ
1.1 ํ์ดํํจ์์ ๊ธฐ๋ณธ ์ ์ธ
๋๋์ด๋ฐ๐พ 2018. 11. 28. 14:12์ฒซ ๋ฒ์งธ๋ก ํ์ดํ ํจ์์ ๋ํด์ ์์๋ณด๊ณ ์ ํฉ๋๋ค. ์ ๊ฐ 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์ ๋ฐ์ธ๋ฉ ํ์ง ์์ต๋๋ค. ํ์ดํ ํจ์๋ ํญ์ ์ต๋ช ์ ๋๋ค.
์ด ๋ถ๋ถ์ ๋ค์ ํฌ์คํ ์์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
'javascript > ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2.2 class์ ๊ธฐ๋ณธ ์ ์ธ (0) | 2018.12.05 |
---|---|
2.1 classes ์ด์ prototype (0) | 2018.12.03 |
1.3 ํ์ดํ ํจ์์์์ arguments (0) | 2018.12.03 |
1.2 ํ์ดํํจ์์์์ this (2) | 2018.11.29 |
ECMAScript 6 ํํ ๋ฆฌ์ผ ์๊ฐ (0) | 2018.11.28 |
- Total
- Today
- Yesterday
- node.js
- typeorm
- Request_Limit_Exceeded
- Spring Async
- nestjs doc
- @nestjs/config
- typeorm ์ฐ๊ฒฐ
- JavaScript
- nestjs/cli
- ๊ธฐ์์ฒญAPI
- Promise bulk
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋น๋๊ธฐ ์์ฒญ
- NestJS
- docker mysql
- android
- nestjs typeorm
- Spring
- nestjs config
- foreignkey
- nestjs project
- nestjs module
- backend-framework
- Promise error
- DeferredResult
- nestjs directory
- node.js backend
- ์๊ณ ๋ฆฌ์ฆ
- nestjs configService
- sequelize
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |