๐ŸŸจ JavaScript

    [๋“œ๋ฆผ์ฝ”๋”ฉ ์™ธ] ์ฝœ๋ฐฑํ•จ์ˆ˜ (Callback function)

    ์ฝœ๋ฐฑํ•จ์ˆ˜ (Callback function) ์ฝœ๋ฐฑํ•จ์ˆ˜๋Š” ์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ฑฐ๋‚˜ ํŠน์ • ์‹œ์ ์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ์‹œ์Šคํ…œ์—์„œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. (ํŠน๋ณ„ํ•œ ์„ ์–ธ๋ฒ•์ด๋‚˜ ๋‹ค๋ฅธ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ, ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋œ ํ•จ์ˆ˜์ด๋‹ค.) function whatCoder(codingTest, goodCode, badCode) { if(codingtest === 'Callback function') { goodCode(); } else { badCode(); } } const goodCode = function () { console.log('Great!') }; const badCode = function () { console.log('Do it again.') }; whatCoder(`I don't kn..

    [๋“œ๋ฆผ์ฝ”๋”ฉ] Early return, early exit?

    ~์ผ ๋•Œ ~ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, ๋ธ”๋Ÿญ ์•ˆ์—์„œ ์ž‘์„ฑ์„ ๊ธธ๊ฒŒ ํ•˜๋ฉด ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. BAD function moreStudy(coding) { if (coding.point > 10) { //long logic... (coding.point๊ฐ€ 10 ์ด์ƒ์ผ ๋•Œ๋งŒ ์ง„ํ–‰๋˜๋Š” ๋กœ์ง) } } ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ํ•œ๊ฐœ์˜ ๋ธ”๋Ÿญ ์•ˆ์— if์™€ else๋ฅผ ๋ฒˆ๊ฐˆ์•„ ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹ค๋Š”, GOOD function moreStudy(coding) { if (coding.point

    [๋“œ๋ฆผ์ฝ”๋”ฉ, comp110 ์™ธ] ๋งค๊ฐœ๋ณ€์ˆ˜ (parameters)์™€ ๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜(rest parameters)

    ๋งค๊ฐœ๋ณ€์ˆ˜(Parameters) primitive parameters (value๋ฅผ ์ „๋‹ฌ) object parameters (reference๋ฅผ ์ „๋‹ฌ) function changeName(obj) { obj.name = 'coder'; } const noran = {name : 'noran'}; changeName(noran); console.log(noran); ๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜(rest parameters) function printAll(...args) { for (let i = 0; i < arg.length; i++) { console.log(arg.[i]); } } printAll('noran','javascript','goodcoding'); ๋งค๊ฐœ๋ณ€์ˆ˜ ์•ž์— ...๋ฅผ ๋ถ™์ด๋ฉด ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ์ „๋‹ฌ๋œ๋‹ค...

    [mdn] ๊ธฐ๋ณธ๊ฐ’ ๋งค๊ฐœ๋ณ€์ˆ˜

    ๊ฐœ์š” ๊ณผ๊ฑฐ์— ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •์€ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ๊ฒ€์‚ฌํ•ด undefined์ธ ๊ฒฝ์šฐ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค. function multiply(a, b) { b = (typeof b !== 'undefined') ? b : 1 return a*b } ์ด์ œ๋Š” ๊ธฐ๋ณธ๊ฐ’ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํžˆ default๊ฐ’์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. function multiply(a, b = 1) { return a*b } ์‘์šฉ 1 ๊ธฐ๋ณธ๊ฐ’์€ ํ˜ธ์ถœ ์‹œ์— ํ‰๊ฐ€๋˜์–ด, ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. function goodCoder(coding = coder()) { return coding } let numberOfTimesCalled = 0 function coder(){ numberOfTimesCalled += 1 ..

    [์ƒํ™œ์ฝ”๋”ฉ, ๋“œ๋ฆผ์ฝ”๋”ฉ, ์ฝ”๋”ฉ์•™๋งˆ] ์—ฐ์‚ฐ์ž(Operator)์™€ break, continue

    ์—ฐ์‚ฐ์ž(Operator) ๋ฆฌ์ŠคํŠธ ! (not ์—ฐ์‚ฐ์ž) ๋ถ€์ • && (and ์—ฐ์‚ฐ์ž) ์ขŒ/์šฐ ๋ชจ๋‘ ์ฐธ์ผ๋•Œ ์ฐธ || (or ์—ฐ์‚ฐ์ž) ์ขŒ/์šฐ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ผ๋•Œ ์ฐธ (* or ์—ฐ์‚ฐ์ž๊ฐ€ ๋‹ค์ˆ˜์ผ ๋•Œ ๋งˆ์ง€๋ง‰์— ๊ฐ€์žฅ ๋ณต์žกํ•œ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ๋Š”๋‹ค) == (๋™๋“ฑ ์—ฐ์‚ฐ์ž) ์ขŒ/์šฐ ๊ฐ™๋‹ค๋ฉด ์ฐธ === (์ผ์น˜ ์—ฐ์‚ฐ์ž) ์ขŒ/์šฐ๊ฐ€ ๋ฐ์ดํ„ฐํ˜•๊นŒ์ง€ ์ •ํ™•ํ•˜๊ฒŒ ๊ฐ™๋‹ค๋ฉด ์ฐธ != ๊ฐ™์ง€ ์•Š๋‹ค (==์™€ ์ •๋ฐ˜๋Œ€) !== ๊ฐ™์ง€ ์•Š๋‹ค (===์™€ ์ •๋ฐ˜๋Œ€) > ์ขŒ>์šฐ๋ผ๋ฉด ์ฐธ >= ์ขŒ>=์šฐ๋ผ๋ฉด ์ฐธ += ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ๋ณ€์ˆ˜์— ๋”ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ๋‹ค. ์กฐ๊ฑด๋ถ€ ์—ฐ์‚ฐ์ž (Conditional operator) const name = 'Noran'; if (name === 'Noran') { console.log('Welcome, Noran!'); } e..

    [์ฝ”๋”ฉ์•™๋งˆ ์™ธ] ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด๊ณผ ๊ฐ์ฒด ์ ‘๊ทผ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์ƒ์„ฑ์ž ํ•จ์ˆ˜

    ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋‹จ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋งŒ์„ ์ƒ์„ฑํ•  ๋•Œ๋Š” ์ง๊ด€์ ์ด๊ณ  ๊ฐ„ํŽธํ•œ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๋Œ€๋Ÿ‰์ƒ์‚ฐํ•  ๋•Œ๋Š” ์ƒ์„ฑ์žํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด const goodCoder = { name : 'Noran', age : 20, } * ์ˆ˜์ •/์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๋„๋ก ๋งˆ์ง€๋ง‰ ๊ฐ’์—๋Š” ๋˜๋„๋ก ,๋ฅผ ๋ถ™์—ฌ์ฃผ์ž. ๊ฐ์ฒด.์ ‘๊ทผ goodCoder.name goodCoder['age'] ๊ฐ์ฒด.์ถ”๊ฐ€ goodCoder.gender = "Female"; goodCoder.clothes = "sweatshirt"; ๊ฐ์ฒด.์‚ญ์ œ delete goodCoder.clothes; ์ƒ์„ฑ์ž ํ•จ์ˆ˜ (object constructor function) function Coder(name,..