๐งcallback function
์ฝ๋ฐฑ ํจ์๋ ๋งค๊ฐ๋ณ์๋ก ํจ์ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํด ํธ์ถ ํจ์ ๋ด์์
๋งค๊ฐ๋ณ์ ํจ์๋ฅผ ์คํํ๋ ๊ฒ์ ๋งํ๋ค.
forEach() ๋ฉ์๋๋ ๋ฐฐ์ด์ ํ์ฉ์ด ๊ฐ๋ฅํ ๋ฉ์๋๋ก, ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ํจ์๋ฅผ
๋ฐฐ์ด ์์ ๊ฐ๊ฐ์ ๋ํด ์คํํ๋ ๋ฉ์๋์ด๋ค.
https://whoyoung90.tistory.com/24
for-in for-of์์ ์ฐจ์ด์ (์ผ๋จ pass)
forEach
-์ฝ๋ฐฑํจ์๋ฅผ ์ธ์๋ก ๋ฐ๊ณ ๊ฐ ์์์ ์ฝ๋ฐฑํจ์๋ฅผ ์คํ์ํจ๋ค
-๋ฐํx
-๋ฐ๋ณต๋ฌธ ์ฝ๋๋ฅผ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉ
map
-์ฝ๋ฐฑํจ์๋ฅผ ์ธ์๋ก ๋ฐ๊ณ ๊ฐ ์์์ ์ฝ๋ฐฑํจ์๋ฅผ ์คํ์ํจ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ค
-๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ฐ๊พผ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ
https://velog.io/@limes/Javascript-Array-Method-for-each-%EC%99%80-map%ED%95%A8%EC%88%98%EC%9D%98-%EC%B0%A8%EC%9D%B4
๋ฌธ๋ฒ์ด๋ ์์ธํ ์ฐจ์ด์
const add = function(x,y) {
return x+y; }
์์ฒ๋ผ ์ฐ๋๊ฑธ ์๋์ฒ๋ผ ์ธ ์ ์๋ค
const add = (x,y) => {
return x+y; }
์ธ์๊ฐ ์์ ๋ ()๊ดํธ๋ ์์ด์ผํ๋ค
์ธ์๊ฐ 1๊ฐ์ผ๋ ()๊ดํธ ์ฌ์ฉํด๋๋๊ณ ์ํด๋๋๋ค
์ธ์๊ฐ 2๊ฐ ์ด์์ด๋ผ๋ฉด ()๊ดํธ๋ ๊ผญ ์ฌ์ฉํด์ผํ๋ค
(Implicit Return) ์์์ ๋ฐํ
return์ ์ฌ์ฉํ์ง ์๋๋ผ๋ ํ์ดํ ๋ค์ {} ๋์ ์ ()์ ์ฌ์ฉํ๋ฉด ๊ฐ์ ๋ฐํํจ
๊ดํธ ์์ฒด๋ฅผ ์๋ตํ๋ ๋ฐฉ๋ฒ๋ ์กด์ฌํ๋ค
const movies = [
{ title: 'Amadeus',
score: 99 },
{ title: 'Stand By Me',
score: 85 },
{ title: 'Parasite',
score: 95 },
{ title: 'Alien',
score: 90 } ]
const newMovies = movies.map(function (movie) {
return `${movie.title} - ${movie.score / 10}`
})
// IMPLICIT RETURN ์์์ ๋ฐํ
const newMovies = movies.map(movie => (
`${movie.title} - ${movie.score / 10}`
))
This
this๋ฅผ ์ผ๋ฐ์ ์ธ ํจ์๋ ์ฌ์ฉํ ๋ ์ ํ์ดํ ํจ์๋ ์ฌ์ฉํ ๋ this์ ์ฐธ์กฐ๋ฒ์๊ฐ ๋ฌ๋ผ์ง๋ค
ํ์ดํ ํจ์๋ ์ฌ์ฉํ ๋๋ this๋ ์๋์ฐ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฅดํจ๋ค(?)
ํจ์๊ฐ ๋ง๋ ๋ฒ์์ ์์๋๋ this ํค์๋ ๊ฐ๊ณผ ๊ฐ๋ค
setTimeout
์ผ์ ์๊ฐํ์ ์๋
setTimeout(() => {
console.log("...are you still there?")
},3000)
๋ฐ๋ฆฌ์ด ๋จ์์ด๊ธฐ ๋๋ฌธ์ 3์ดํ์ ์๋ํ๋ค
setInterval
์ฝ๋ฐฑ์ ๋งค ํน์ ๋ฐ๋ฆฌ ์ด ๋ง๋ค ํธ์ถํ๋ ํจ์์ด๋ค
const id = setInterval(() => {
console.log(Math.random())
},2000);
clearInterval(id) ์
๋ ฅ์ ์ข
๋ฃ ๊ฐ๋ฅ
์์๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด์์ ํํฐ๋ง์ ํ๊ฑฐ๋ ๋ถ๋ถ ์งํฉ์ ๋ชจ์ ์ ๋ฐฐ์ด์ ๋ง๋๋๋ฐ ์ฌ์ฉํ๋ค
์ฝ๋ฐฑ์ ์ ๋ฌํด์ ์ด ์ฝ๋ฐฑ์ด ์ฐธ์ด๋ ๊ฑฐ์ง์ ๋ฐํํด์ผํ๊ฒ๋ ํด์ผํ๋ค (๋ถ๋ฆฌ์ธ)
const movies = [
{
title: 'Amadeus',
score: 99,
year: 1984
},
{
title: 'Sharknado',
score: 35,
year: 2013
},
{
title: '13 Going On 30',
score: 70,
year: 2004
}
]
const recentMovies = movies.filter(m => m.year > 2000)
// const goodMovies = movies.filter(m => m.score > 80)
// const goodTitles = goodMovies.map(m => m.title)
//map๊ณผ filter๋ฅผ ํจ๊ป ์ฌ์ฉ
movies.filter(m => m.score > 80).map(m => m.title);
๋ถ๋ฆฌ์ธ ๊ฐ๊ณผ ๊ด๋ จ๋ ํจ์
every๋ ๋ชจ๋ ์์๊ฐ true๊ฐ์ธ์ง๋ฅผ
some์ ํ๋ ์ด์์ ์์๊ฐ true ๊ฐ์ธ์ง๋ฅผ ํ์ธ
๋ฐฐ์ด์ ๊ฐ์ ธ๋ค๊ฐ ์ ์ฐจ ์ค์ฌ๊ฐ๋ฉด์ ๋ง์ง๋ง์๋ ํ๋์ ๊ฐ๋ง ๋จ๊ธด๋ค
๋ฌธ๋ฒ ๋๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ๋๋ค
accumulator ๋ฐฐ์ด์ ๋งํ๋ฉฐ ์ค์ฌ๋๊ฐ ๋์์ผ๋ก ๋ณผ ์ ์๋ค
currentValue ๊ฐ๊ฐ์ ์์๋ฅผ ๋ํ๋ธ๋ค
ํ์ฉํ๋ค๋ฉด ๋ฐฐ์ด์์ ๊ฐ๊ฐ ์์๋ค์ ํฉ, ๊ณฑ, ์ต๋๊ฐ, ์ต์๊ฐ ๋ฑ๋ฑ์ ๊ตฌํ ์ ์๋ค