JavaScript์ ํ์
๋ณ์ ์ ์ธ ํค์๋ let๊ณผ const
ํ์ดํ ํจ์
์ค์ฝํ
๋ฐฐ์ด
๊ฐ์ฒด
spread
๊ตฌ์กฐ๋ถํดํ ๋น
์๋ฐ์คํฌ๋ฆฝํธ์์ ํ ์คํธํ ์ ์๋ ๋ฌธ๋ฒ์ ํตํด ์ ์ ๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐ
๐๐ป ์๋ ์์ ์ฌ์ง์ด๋ค.
์ฝ๋์คํ ์ด์ธ ์ Github ์๋ฃ์์ ์ง์ ํ ํ์ผ์ fork ํ๊ณ ํ์ผ์ ๋ฐ์ ๋ค์, ๋น์ฃผ์ผ ์คํ๋์ค๋ก ์คํํ ๊ฒฐ๊ณผ์ด๋ค.
ํ ์คํธ ๋ฌธ๋ฒ : expect(ํ ์คํธํ๋๊ฐ).๊ธฐ๋ํ๋ ์กฐ๊ฑด
ํ ์คํธ ํ๋ ๊ฐ๊ณผ ๊ธฐ๋ํ๋ ์กฐ๊ฑด์ ์๋ง๊ฒ ์์ฑํ๋ ๊ฒ์ด ์ด๋ฒ ๊ณผ์ ์ด๋ค.
npx codestates-assignment-manager login
< code >
test code ๋ฌธ์ ๋ ๋ชจ๋ ์๋ง๊ฒ ์์ฑํ์์ผ๋ ์ ์ innerFn()์
๊ตณ์ด outerFn ํจ์ ์์์ ํ๊ณ ์๋์ง ๋ฐ์์๋ ์คํ์ด ์๋๋์ง ์ดํด๊ฐ ๋์ง ์์์ ๋ด๊ฐ ๋ฐ๋ก test code๋ฅผ ์์ฑํด ๋ณด์๋ค.
let age = 27;
let name = 'jin';
let height = 179;
function outerFn() {
name = 'jimin';
function innerFn() {
age = 26;
height = 180
}
return innerFn;
}
const innerFn = outerFn();
console.log(age,name,height)
์ด ์ํ๋ก๋ง ๋ดค์ ๋ console.log์ ๊ฐ์
age = 27, name = jimin, heigth = 179๊ฐ ๋๋ค.
๋ด๊ฐ ์๊ฐํ์ ๋๋ age = 26, name = jimin, heigth = 180์ด์๋ค.
์ฒ์์๋ innerFn ํจ์๋ ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋๋ฐ ์ ์ ๋ฐ๋๋์ง.. ๐ง ์ด์ฌํ ์ฐพ์๋๊ฒจ๋ดค๋๋ฐ ์๋ณด์ฌ์ ์๊ณ ๋ผ์คํ
์ด์ธ ์ ์ฌ๋ฆด ์๊ฐ์ด์๋ค.
innerFn ํจ์๋ฅผ ์คํ์ํค์ง ์์๊ธฐ ๋๋ฌธ์ outFn ํจ์ ์คํ ๊ฐ๋ง ๋ค์ด๊ฐ๋ ๊ฒ์ด์๋ค.
< code >
let age = 27;
let name = 'jin';
let height = 179;
function outerFn() {
name = 'jimin';
function innerFn() {
age = 26;
height = 180
}
return innerFn;
}
const innerFn = outerFn();
innerFn() // innerFn ํจ์ ์คํ code ๋ฃ๊ธฐ
console.log(age,name,height)
const innerFn = outerFn();
๊ทธ๋ ๋ค๋ฉด ์๋ ์ฝ๋์ฒ๋ผ innerFn ๋ณ์์ outerFn ์คํ๊ฐ์ ๋ฃ์ผ๋ฉด innerFn ํจ์์ ์ฃผ์๊ฐ ๋ค์ด๊ฐ ์์ผ๋ ํจ์ ์คํ์ฒ๋ผ innerFn()์ ํ๊ฒ๋๋ฉด
innerFn ํจ์ ์์ ์ฝ๋๋ค์ด ์คํ๋๋ค.
๋ฐ๋ผ์ console.log ๊ฐ์ age = 26, name = jimin, heigth = 180์ด ๋๋ค.
let age = 27;
let name = 'jin';
let height = 179;
function outerFn() {
name = 'jimin';
function innerFn() {
age = 26;
height = 180
}
return innerFn;
}
const innerFn = outerFn();
innerFn() // innerFn ํจ์ ์คํ
console.log(age,name,height)
ํจ์ ์์ ํจ์๊ฐ ์์ ๋, ๋ฐ๊นฅ ํจ์์์ ์์ชฝ ํจ์๋ฅผ return ํ๊ฒ ๋๋ฉด ์์ชฝ ํจ์์ ์ฃผ์๊ฐ์ด ๋ฆฌํด๋๋ค.
์์ชฝ ํจ์์ ์ฃผ์๊ฐ์ ๋ค๋ฅธ ๋ณ์์ ๋ฃ์ด์ ์คํํ๊ฒ ๋๋ฉด ์์ชฝ ํจ์์ ์ฝ๋๋ค์ด ์คํ๋์ด ๋ฆฌํด๋๋ค๋ ๊ฒ์ ์๊ฒ ๋์๊ณ ์์ฃผ ์๋ฒฝํ๋ ์๋์ง๋ง
์ด๋ ์ ๋ ์คํ์ ํ๋ฆ์ ์๊ฒ ๋์๋ค.