Function dessert (count, eat, good){ count < 3 ? eatDessert() : goodDessert(); } Function eatDessert(){ console.log("๊ฐ์ ๋จน์ผ์ธ์"); } Function goodDessert(){ console.log("๊ฐ์ ๊ทธ๋ง ๋จน์ผ์ธ์"); } dessert(4, eatDessert, goodDessert);
์์ ์ฝ๋ ๋ง์ง๋ง ์ค์ ๋ณด๋ฉด dessert ํจ์๋ ( 4, eatDessert, goodDessert )๋ฅผ ์ ๋ฌ ๋ฐ๋๋ค. ์ด๋ eatDessert, goodDessert๋ ํจ์์ด๋ฉฐ, ํจ์๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ ๋ฐ๋ ๊ฒ์ด๋ฏ๋ก ์ด ํจ์๋ค์ ์ฝ๋ฐฑํจ์๋ผ ํ๋ค.
function time(){ const ์ฒ์= Date.now(); for(let i=0; i<100000; i++){ } const ๋= Date.now(); console.log(๋ - ์ฒ์ +'ms'); } time(); console.log('๋ค์ ์์ ');
์ฝ๋์ค๋ช
์์ ์ฝ๋๋ time ํจ์๊ฐ 100,000๋ฒ ๋ฃจํ๋ฅผ ๋๊ณ console.log๋ฅผ ํตํด for๋ฌธ์ด ์คํ๋๋๋ฐ ์ผ๋ง๋ ๊ฑธ๋ ธ๋์ง ์๊ฐ์ ๊ตฌํ ์ ์๋ ์ฝ๋์ด๋ค. ์ด๋, time( )์ ํธ์ถํ์ผ๋๊น 3ms ๊ฐ ๋จผ์ ๊ฒฐ๊ณผ๋ก ๋์จ๋ค. ๊ทธ ๋ค์์ผ๋ก '๋ค์ ์์ ' ๋ฌธ์๊ฐ ๊ฒฐ๊ณผ๋ก ๋์จ๋ค.
์ด๋ฅผํตํด ์ ์ ์๋ ๊ฒ์, for๋ฌธ์ด ์ฒ๋ฆฌ๋ ๋์ ๋ค๋ฅธ ์์ ์ ์ฒ๋ฆฌ ํ์ง ์๊ณ ์จ์ ํ for๋ฌธ๋ง ์คํ๋ ํ์ console.log๊ฐ ์คํ๋๋ ๊ฒ์ ๋ณด์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ ๋๊ธฐ์ ์ฝ๋์ด๋ค.
function time(){ setTimeout(()=> { const ์ฒ์= Date.now(); for(let i=0; i<100000; i++){ } const ๋= Date.now(); console.log(๋ - ์ฒ์ +'ms'); },5000) } time(); console.log('๋ค์ ์์ ');
setTimeout : ํน์ ์ฝ๋ ๋๋ ํจ์๋ฅผ ์ผ์ ์๊ฐ ์ง์ฐ ํ ์คํํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ํจ์
์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ ํธ์ถ๋ ์ฝ๋ฐฑํจ์, ๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ ์ง์ฐ์๊ฐ์ ๋ฐ์์ ์ง์ฐ์๊ฐ ๋ค์ ์ฝ๋ฐฑํจ์๊ฐ ์คํ๋๋ค. ( ์ง์ฐ์๊ฐ์ ๋จ์๋ ms๋ก , 1000ms๊ฐ 1์ด )
์ฝ๋์ค๋ช
์์ ์ฝ๋๋ setTimeout ๋น๋๊ธฐ ํจ์๊ฐ ์์ผ๋, time ( ) ํธ์ถํด๋ ์ง์ฐ ์๊ฐ ๋ค์ ๊ฒฐ๊ณผ๊ฐ์ด ๋์จ๋ค. ๋ฐ๋ผ์ '๋ค์ ์์ '์ด๋ผ๋ ๋ฌธ์๋ time( ) ํจ์๊ฐ ์ง์ฐ๋๋ ๋์ ์คํ๋์ด ๋จผ์ ๊ฒฐ๊ณผ๋ก ๋์จ๋ค.
function time(callback){ setTimeout(()=> { const ์ฒ์= Date.now(); for(let i=0; i<100000; i++){ } const ๋= Date.now(); console.log(๋ - ์ฒ์ +'ms'); callback(); },5000) } time(() => { console.log('์์ ์ด ๋๋ฌ์ต๋๋ค'); }); console.log('๋ค์ ์์ ');
๋งค๊ฐ๋ณ์๋ก ๋๊ฒจ๋ฐ์ ํจ์(callback)๋ ์ผ๋จ ๋๊ฒจ๋ฐ๊ณ , time์ด ํธ์ถ๋ ๋ console.log๋ฅผ ํธ์ถํด์ค๋ค.
function test() { const arr1 = [1,2,3,4,5]; const arr2 = arr1.filter(function(item) { return item <= 3; }); console.log(arr2); //3,4,5 }
const arr = [1,2,3,4,5]; const newArr = arr.map((item)=> item*2); console.log(newArr);
const arr = [1,2,3,4,5]; const newArr = arr.forEach((item)=> item*2); console.log(newArr);
map๊ณผ ๋์ผํ ์ฝ๋๋ก ์์ฑํ๋๋ฐ forEach๋ ์ undefined์ผ๊น?
๐จ map์ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ ๋ฐ๋ฉด, forEach๋ ๊ธฐ์กด์ ๋ฐฐ์ด์ ๋ณ๊ฒฝ์ํค๋ ๋ฉ์๋์ด๊ธฐ ๋๋ฌธ์ map๊ณผ ๋์ผํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ค.
const arr = [1,2,3,4,5]; const newArr = []; arr.forEach((item)=> newArr.push(item*2)); console.log(newArr);
์์ ์ฝ๋์ฒ๋ผ forEach๋ ๋น๋ฐฐ์ด์ ๋ฐ๋ก ์ฑ์ฐ๋ ๊ฒ์ด ์๋ ๋น๋ฐฐ์ด์ ์ ์ธํด์ฃผ๊ณ push๋ก ์ถ๊ฐํด์ค์ผ ํ๋ค.
const arr = [1,2,3,4,5]; const a = arr.map(function (item){ return item; }); console.log(a);
const arr = [1,2,3,4,5]; const a = arr.forEach(function (item){ return item; }); console.log(a);
๐จ๋ค์ ์ ๋ฆฌํ๋ฉด, forEach๋ ๊ธฐ์กด์ Array๋ฅผ ๋ณ๊ฒฝํ๊ณ map์ ์๋ก์ด Array๋ฅผ ๋ฐํํ๋ค.
์ฝ๋ฐฑํจ์๋ฅผ ์ต๋ช ํจ์๋ก ์ ๋ฌํ๋ ๊ณผ์ ์์ ๋ ๋ค์ ์ฝ๋ฐฑ ์์ ํจ์ ํธ์ถ์ด ๋์ด ์ฝ๋์ ๋ค์ฌ์ฐ๊ธฐ ์์ค์ด๊ฐ๋นํ๊ธฐ ํ๋ค ์ ๋๋ก ๊น์ด์ง๋ ํ์
์๋ฌ ํด๊ฒฐ๊ณผ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ฐ๋ฉฐ, ๊ฐ๋
์ฑ์ด ์๋ค.
ํจ์๋ช ๋์ ๋ณ์๋ช ์ ํจ์ ์ฝ๋๋ฅผ ์ ์ฅํ๋ ๊ตฌํ ๋ฐฉ์
let hello = function(){ document.write("Hello World!"); }; hello(); // Hellow World!