all is well!!
14. JS ํจ์ ๋ณธ๋ฌธ
๐ ํ๋ก๊ทธ๋๋ฐ ํจ์?

1. ์ผ๋ จ์ ๊ณผ์ ์ ๋ฌธ์ผ๋ก ๊ตฌํํ๊ณ ์ฝ๋ ๋ธ๋ก์ผ๋ก ๊ฐ์ธ์ ํ๋์ ์คํ ๋จ์๋ก ์ ์ํ ๊ฒ.
2. ์ ๋ ฅ์ ๋ฐ์์ ์ถ๋ ฅ์ ๋ด๋ณด๋ด๋ ๊ตฌ์กฐ.
๋งค๊ฐ๋ณ์ : ํจ์ ๋ด๋ถ๋ก ์ ๋ ฅ์ ์ ๋ฌ๋ฐ๋ ๋ณ์
์ธ์ : ์ ๋ ฅ
๋ฐํ๊ฐ : ์ถ๋ ฅ
3. ํจ์๋ ๊ฐ์ด๊ณ ์ฌ๋ฌ๊ฐ ์กด์ฌํ ์ ์์ด์ ๊ตฌ๋ณํ๊ธฐ ์ํด ์๋ณ์์ธ ํจ์ ์ด๋ฆ์ ์ฌ์ฉํ๋ค.
4. ํจ์ ์ ์๋ฅผ ํตํด ์์ฑ
5. ํจ์ ํธ์ถ์ ํตํด ์ธ์๋ฅผ ๋งค๊ฐ๋ณ์๋ก ํจ์์ ์ ๋ฌํ๋ฉด์ ํจ์์ ์คํ์ ๋ช ์์ ์ผ๋ก ์ง์ํด์ผ ํ๋ค.
//ํจ์ ์ ์
function add(x, y){
return x+y;
}
//ํจ์ ํธ์ถ
var result = add(2,5);
//ํจ์ add์ ์ธ์ 2, 5๋ฅผ ์ ๋ฌํ๋ฉด์ ํธ์ถํ๋ฉด ๋ฐํ๊ฐ 7์ ๋ฐํํ๋ค.
๐ ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ?
1. ๋ช ๋ฒ์ด๋ ํธ์ถ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ์ค๋ณต์ ์ต์ ํ๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๋์ฌ์ ์ ์ง๋ณด์๊ฐ ํธ๋ฆฌํด์ง๋ค.
2. ํจ์ ์ด๋ฆ์ ๋ณ์ ์ด๋ฆ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํจ์ ์ญํ ์ ์ ์ค๋ช ํ๋ฉด ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์๋ค.
๐ ํจ์ ๋ฆฌํฐ๋ด
1. JS์ ํจ์๋ ๊ฐ์ฒด ํ์ ์ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ํจ์ ๋ฆฌํฐ๋ด๋ก ์์ฑํ ์ ์๋ค.
var f = function add (x, y){
return x+y;
}
2. ํจ์ ๋ฆฌํฐ๋ด์ ์๋ 4๊ฐ์ง๋ก ๊ตฌ์ฑ๋๋ค.
function ํค์๋
ํจ์ ์ด๋ฆ
๋งค๊ฐ ๋ณ์ ๋ชฉ๋ก
ํจ์ ๋ชธ์ฒด
3. ๋ฆฌํฐ๋ด์ ๊ฐ์ ์์ฑํ๊ธฐ ์ํ ํ๊ธฐ๋ฒ์ผ๋ก ํจ์ ๋ฆฌํฐ๋ด๋ ํ๊ฐ๋์ด ๊ฐ์ฒด ๊ฐ์ ์์ฑํ๋ค.
๊ทธ๋์ ํจ์๋ ๊ฐ์ฒด๋ค.
4. ์ผ๋ฐ ๊ฐ์ฒด์ ๋ค๋ฅธ์ ์ ํจ์๋ ํธ์ถํ ์ ์๊ณ ํจ์ ๊ฐ์ฒด๋ง์ ๊ณ ์ ํ ํ๋กํผํฐ๋ฅผ ๊ฐ๊ณ ์๋ค.
๐ฃ ํจ์ ์ ์ธ๋ฌธ
// ํจ์ ์ ์ธ๋ฌธ
function add(x,y){
return x+y;
}
// ํจ์ ์ฐธ์กฐ
console.log(add); // f add(x,y)
// ํจ์ ํธ์ถ
console.log(add(2,5)); // 7
1. ํจ์ ์ ์ธ๋ฌธ์ ํจ์ ๋ฆฌํฐ๋ด๊ณผ ํํ๊ฐ ๋์ผํ๋ค.
ํ๊ฐ์ง ๋ค๋ฅธ ์ ์ ํจ์ ์ ์ธ๋ฌธ์ ํจ์ ์ด๋ฆ์ ์๋ตํ ์ ์๋ค.
2. ํจ์ ์ ์ธ๋ฌธ์ ํํ์์ด ์๋ ๋ฌธ์ด๊ธฐ ๋๋ฌธ์ console์์ ํจ์ ์ ์ธ๋ฌธ์ ์คํํ๋ฉด ์๋ฃ ๊ฐ undefined๊ฐ ์ถ๋ ฅ๋๋ค.
3. ํํ์์ด ์๋ ํจ์ ์ ์ธ'๋ฌธ'์ ๋ณ์์ ํ ๋นํ ์ ์๋ค.
var add = function add(x, y){
return x+y;
};
console.log(add(2, 5)); //7
ํ์ง๋ง ์์ ์์๋ ๋ณ์์ ํจ์์ ์ธ๋ฌธ์ด ํ ๋น๋๋๊ฒ ์ฒ๋ผ ๋ณด์ด๋๋ฐ
์ด๋ ๊ฒ ๋์ํ๋ ์ด์ ๋ JS์์ง์ด ์ฝ๋ ๋ฌธ๋งฅ์ ๋ฐ๋ผ
ํจ์ ์ด๋ฆ์ด ์๋ ๊ธฐ๋ช ํจ์ ๋ฆฌํฐ๋ด์ ์ค์์ ์ธ ์ฝ๋์ด๊ธฐ ๋๋ฌธ์
ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ํด์ํ๊ฑฐ๋ ํจ์ ๋ฆฌํฐ๋ด ํํ์์ผ๋ก ํด์๋ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ.
1. ๊ธฐ๋ช
ํจ์(์ด๋ฆ ์๋ ํจ์) ๋จ๋
์ฌ์ฉ
function foo(){
console.log('foo');
}
foo() // foo
2. ๊ทธ๋ฃน ์ฐ์ฐ์()๋ด์ ์๋ ํจ์๋ ํจ์ ๋ฆฌํฐ๋ด ํํ์์ผ๋ก ํด์.
(function bar(){console.log('bar');});
bar(); // bar is not defined
4. ๋จ๋ ์ผ๋ก ์ฌ์ฉ๋ ํจ์ ๋ฆฌํฐ๋ด(foo)์ ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ํด์ํ๋ค.
5. ๊ทธ๋ฃน ์ฐ์ฐ์()๋ด์ ์๋ ํจ์ ๋ฆฌํฐ๋ด(bar)์ ํจ์ ๋ฆฌํฐ๋ด ํํ์์ผ๋ก ํด์ํ๋ค.
๊ทธ๋์ ํํ์์ด ์๋ ๋ฌธ์ ํผ์ฐ์ฐ์๋ก ์ฌ์ฉํ ์ ์๋ค.
6. ์์ ์์์์ ํจ์ ๋ฆฌํฐ๋ด ํํ์์ผ๋ก ์์ฑ๋ bar์ ํธ์ถํ ์ ์๋ค.

๊ทธ ์ด์ ๋ ํจ์ ์ด๋ฆ์ ํจ์ ๋ชธ์ฒด ๋ด์์๋ง ์ฐธ์กฐํ ์ ์๋ ์๋ณ์๋ค.
๊ทธ๋์ ํจ์ ๋ชธ์ฒด ์ธ๋ถ์์๋ ํจ์ ์ด๋ฆ์ผ๋ก ํจ์๋ฅผ ์ฐธ์กฐํ ์ ์๊ธฐ ๋๋ฌธ์
ํจ์ ๋ชธ์ฒด ์ธ๋ถ์์๋ ํจ์ ์ด๋ฆ์ผ๋ก ํจ์๋ฅผ ํธ์ถํ ์ ์๋ค.
7. ์์ ์์์์ ํจ์ ์ ์ธ๋ฌธ foo๋ ํธ์ถํ ์ ์๋ค.

๊ทธ ์ด์ ๋ foo๋ JS์์ง์ด ์๋ฌต์ ์ผ๋ก ์์ฑํ ์๋ณ์์ด๊ธฐ ๋๋ฌธ.
JS์์ง์ ์์ฑ๋ ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ํด ํจ์ ์ด๋ฆ๊ณผ ๋์ผํ ์ด๋ฆ์ ์๋ณ์๋ฅผ ์๋ฌต์ ์ผ๋ก ์์ฑํ๊ณ
๊ฑฐ๊ธฐ์ ํจ์ ๊ฐ์ฒด๋ฅผ ํ ๋นํ๋ค.
8. ํจ์๋ ํจ์ ์ด๋ฆ์ผ๋ก ํธ์ถํ์ง ์๊ณ ํจ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ณ์๋ก ํธ์ถํ๋ค.
var add(js์์ง์ด ์๋ฌต์ ์ผ๋ก ์์ฑํ ์๋ณ์) = function add(x, y){
return x+y;
};
console.log(add(2, 5)); //7
๊ทธ๋์ ์์ ์์๋ JS์์ง์ด ์๋ฌต์ ์ผ๋ก ์์ฑํ add ์๋ณ์๋ก ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ์์ฑํ ํจ์๋ฅผ ํธ์ถํ๋ค.
9. JS ์์ง์ ํจ์ ์ ์ธ๋ฌธ์ ํจ์ ํํ์์ผ๋ก ๋ณํํด ํจ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋๊ฒ.
๐ฃ ํจ์ ํํ์
1. JS ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด๋ก ํจ์๋ฅผ ๊ฐ์ฒ๋ผ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
์ผ๊ธ๊ฐ์ฒด? : ๊ฐ์ ์ฑ์ง(๋ณ์์ ํ ๋น, ํ๋กํผํฐ ๊ฐ, ๋ฐฐ์ด์ ์์ ๋ฑ)์ ๊ฐ๋ ๊ฐ์ฒด
2. ๊ทธ๋์ ํจ์ ๋ฆฌํฐ๋ด๋ก ์์ฑํ ํจ์ ๊ฐ์ฒด๋ฅผ ๋ณ์์ ํ ๋นํ ์ ์๋๊ฒ์ด ํจ์ ํํ์.
3. ํจ์ ๋ฆฌํฐ๋ด์ ํจ์ ์ด๋ฆ์ ์๋ต ๊ฐ๋ฅํ ์ต๋ช ํจ์์ด๊ณ ๋ณดํต์ ์๋ตํ๋ค.
// ํจ์์ ์ด๋ฆ(foo)์ด ์๋ ๊ธฐ๋ช
ํจ์ ํํ์.
// ์๋ต ๊ฐ๋ฅ.
var add = function foo(x, y){
return x+y;
};
// JS์์ง์ด ์๋ฌต์ ์ผ๋ก ๋ง๋ค์ด๋ธ add ์๋ณ์๋ก ํด๋น ํจ์ํธ์ถ
console.log(add(2, 5)); //7
// ํจ์ ์ด๋ฆ์ ํจ์ ๋ด์์๋ง ์ ํจํ๊ธฐ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฌ๋ค.
console.log(foo(2, 5)); //foo is not defind
4. ํจ์ ์ ์ธ๋ฌธ์ ํํ์์ด ์๋ ๋ฌธ์ด๊ณ ํจ์ ํํ์์ ํํ์์ธ ๋ฌธ์ด๋ค. ๊ทธ๋์ ์ค์ํ ์ฐจ์ด๊ฐ ์๋ค.
๐ฃ ํจ์ ์์ฑ ์์ ๊ณผ ํจ์ ํธ์ด์คํ
// ํจ์ ์ฐธ์กฐ
console.dir(add); // f add(x, y)
console.dir(sub); // undefined
// ํจ์ ํธ์ถ
console.log(add(2,5)); // 7
console.log(sub(2,5)); // sub is not a function
// ํจ์ ์ ์ธ๋ฌธ
function add(x,y){
return x+y;
}
// ํจ์ ํํ์
var add = function (x,y){
return x-y;
}
1. ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ์ ์ํ ํจ์๋ ์ด์ ์ ํธ์ถํ ์ ์๋ค.
๊ทธ ์ด์ ๋ ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ํจ์๋ฅผ ์ ์ํ๋ฉด ๋ฐํ์ ์ด์ ์ ํจ์ ๊ฐ์ฒด๊ฐ ๋จผ์ ์์ฑ๋๊ณ
JS์์ง์ ํจ์ ์ด๋ฆ๊ณผ ๋์ผํ ์ด๋ฆ์ ์๋ณ์๋ฅผ ์๋ฌต์ ์ผ๋ก ์์ฑํ๊ณ ํจ์ ๊ฐ์ฒด๋ฅผ ํ ๋นํ๋ ํธ์ด์คํ ๋๋ฌธ.
2. ํจ์ ํธ์ด์คํ ์ ๋ณ์ ํธ์ด์คํ ๊ณผ ์ฐจ์ด๊ฐ ์๋ค.
var ๋ณ์๋ undefined๋ก ์ด๊ธฐํ๋๊ณ ํจ์์ ์๋ฌต์ ์์ฑ ์๋ณ์๋ ํจ์ ๊ฐ์ฒด๋ก ์ด๊ธฐํ ๋๋ค.
3. ํจ์ ํํ์์ ๋ณ์์ ํ ๋น๋๋ ๊ฐ์ด ํจ์ ๋ฆฌํฐ๋ด์ธ ๋ฌธ์ด๋ค.
4. ๋ณ์ ํ ๋น๋ฌธ์ ๊ฐ์ ํ ๋น๋ฌธ์ด ์คํ๋๋ ์์ ์ธ ๋ฐํ์์ ํ๊ฐ๋์ด์ ํจ์ ํํ์์ ํจ์ ๋ฆฌํฐ๋ด๋
ํ ๋น๋ฌธ์ด ์คํ๋๋ ์์ ์ ํ๊ฐ๋์ด ํจ์ ๊ฐ์ฒด๊ฐ ๋๋ค.
5. ๊ทธ๋์ ํจ์ ํํ์์ ๋ณ์ ํธ์ด์คํ ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ด์ ์ ์ฐธ์กฐํ๋ฉด undefined๋ฅผ ํธ์ถํ๋๊ฒ ๋๊ธฐ๋๋ฌธ์
ํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
6. ํจ์ ํธ์ด์คํ ์ ๋น์ฐํ ๊ท์น์ ๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ํจ์ ํํ์์ ์ฌ์ฉํ๋๊ฒ ์ข๋ค.
๐ฃ Function ์์ฑ์ ํจ์
1. JS ๋นํธ์ธ function ์์ฑ์ ํจ์์ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก๊ณผ ํจ์๋ชธ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ์ ๋ฌํ๋ฉด์
new ์ฐ์ฐ์์ ํจ๊ฒ ํธ์ถํ๋ฉด ํจ์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ๋ฐํํ๋ค. (new ์์จ๋ ๊ฒฐ๊ณผ ๋์ผ)
var add = new function('x', 'y', 'return x+y');
console.log(add(2,5)); // 7
2. ํด๋ก์ ๋ฅผ ์์ฑํ์ง ์๊ณ ํจ์ ์ ์ธ๋ฌธ์ด๋ ํจ์ ํํ์๊ณผ๋ ๋ค๋ฅด๊ฒ ๋์ํ๊ธฐ ๋๋ฌธ์
function ์์ฑ์ ํจ์๋ ์กด์ฌ๋ง ์๊ณ ์ฌ์ฉํ๋๊ฑด ์ถ์ฒํ์ง ์๋๋ค.
๐ฃ ํ์ดํ ํจ์
1. ES6์ ๋์ ๋์๊ณ function ํค์๋๋ฅผ ์๋ตํ๋ ๊ฐ๋ตํ ๋ฐฉ๋ฒ์ผ๋ก ์ ์ธํ ์ ์๋ค.
2. ํญ์ ์ต๋ช ํจ์๋ก ์ ์ํ๋ค.
const add = (x, y) => x + y;
console.log(add(2,5)); //7
3. ์์ฑ์ ํจ์๋ก ์ฌ์ฉํ ์ ์๋ค.
4. ๊ธฐ์กด ํจ์์ this ๋ฐ์ธ๋ฉ์ด ๋ค๋ฅด๋ค.
5. ํ๋กํผํฐ๊ฐ ์๊ณ arguments ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์๋๋ค.
๐ ํจ์ ํธ์ถ
1. ํจ์๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ณ์์ ํจ์ ํธ์ถ ์ฐ์ฐ์๋ก ํธ์ถํ๋ค.
2. ํธ์ถ ์ฐ์ฐ์ ๋ด์๋ 0๊ฐ ์ด์์ ์ธ์๋ฅผ ์ผํ๋ก ๊ตฌ๋ถํด์ ๋์ดํ๋ค.
3. ํจ์๋ฅผ ํธ์ถํ๋ฉด ํ์ฌ์ ์คํ ํ๋ฆ์ ์ค๋จํ๊ณ ํธ์ถ๋ ํจ์๋ก ์คํํ๋ฆ์ ์ฎ๊ธด๋ค.
4. ๋งค๊ฐ๋ณ์์ ์ธ์๊ฐ ์์๋๋ก ํ ๋น๋๊ณ ํจ์ ๋ชธ์ฒด์ ๋ฌธ๋ค์ด ์คํ๋๊ธฐ ์์ํ๋ค.
๐ฃ ๋งค๊ฐ๋ณ์์ ์ธ์

1. ํจ์๋ฅผ ์คํํ๊ธฐ ์ํด ํ์ํ ๊ฐ์ ํจ์ ์ธ๋ถ์์ ํจ์ ๋ด๋ถ๋ก ์ ๋ฌํ ํ์๊ฐ ์์๋
๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์ธ์๋ฅผ ์ ๋ฌํ๋ค.
2. ์ธ์๋ ๊ฐ์ผ๋ก ํ๊ฐ๋ ์ ์๋ ํํ์.
3. ์ธ์๋ ํจ์๋ฅผ ํธ์ถํ ๋ ์ง์ ํ๊ณ ๊ฐ์์ ํ์ ์ ์ ํ์ด ์๋ค.
4. ๋งค๊ฐ๋ณ์๋ ํจ์๋ฅผ ์ ์ํ ๋ ์ ์ธํ๊ณ ํจ์ ๋ชธ์ฒด ๋ด๋ถ์์ ๋ณ์์ ๋์ผํ๊ฒ ์ทจ๊ธ๋๋ค.
5. ๋งค๊ฐ๋ณ์์ ์ค์ฝํ๋ ํจ์ ๋ด๋ถ๋ค. ์ธ๋ถ์์๋ ์ฐธ์กฐx
6. ํจ์๋ ๋งค๊ฐ๋ณ์์ ๊ฐ์์ ์ธ์์ ๊ฐ์๊ฐ ์ผ์นํ๋์ง ์ฒดํฌํ์ง ์๊ณ ์ธ์๊ฐ ํ ๋น๋์ง ์์ ๋งค๊ฐ๋ณ์ ๊ฐ์ undefined๋ค.
7. ์๋ ์์์ฒ๋ผ ๋งค๊ฐ๋ณ์ y๊ฐ์ด ์์ผ๋ฉด undefined๋ก ์ด๊ธฐํ๋ ์ํ ๊ทธ๋๋ก์ด๊ณ
ํจ์ ๋ชธ์ฒด์ ๋ฌธ x+y๋ 2+undefined์ฌ์ NaN์ด ๋ฐํ๋๋ค.
function add(x,y){
return x+y;
}
console.log(add(2)); // NaN
8. ๋งค๊ฐ๋ณ์๋ณด๋ค ๋ง์ ์ธ์๋ ๋ฌด์๋๋ค.
function add(x,y){
return x+y;
}
console.log(add(2, 5, 10)); // 7
9. ์ด๊ณผ๋ ์ธ์๋ ๋ฒ๋ ค์ง๋๊ฒ์ ์๋๊ณ arguments ๊ฐ์ฒด์ ํ๋กํผํฐ์ ๋ณด๊ด๋๋ค.
10. arguments ๊ฐ์ฒด๋ ํจ์๋ฅผ ์ ์ํ ๋ ๋งค๊ฐ๋ณ์ ๊ฐ์๋ฅผ ํ์ ํ ์ ์๋ ํจ์๋ฅผ ๊ตฌํํ ๋ ์ ์ฉํ๋ค.
๐ฃ ์ธ์ ํ์ธ
function add(x,y){
return x+y;
}
console.log(add(2)); // NaN
console.log(add('a','b')); // 'ab'
1. JS ๋ฌธ๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋๋ฌธ์ ์์ ์์์ฒ๋ผ ์คํ๋๋ค.
2. ๊ทธ๋์ ์ ์ ํ ์ธ์๊ฐ ์ ๋ฌ๋์๋์ง ํ์ธ์ด ํ์ํ๋ค.
3. ๊ทธ๋ฐ๋ฐ ์ธ์ ํ์ธ์ ํด๋ ๋ถ์ ์ ํ ํธ์ถ์ ์ฌ์ ์ ๋ฐฉ์งํ ์ ์๊ณ ์๋ฌ๋ ๋ฐํ์์ ๋๊ธฐ๋๋ฌธ์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๋ฉด ์ข๋ค.
๐ฃ ๋งค๊ฐ๋ณ์์ ์ต๋ ๊ฐ์
1. ECMAScript ์ฌ์์๋ ๋งค๊ฐ๋ณ์์ ์ต๋ ๊ฐ์์ ๋ํด ๋ช ์์ ์ผ๋ก ์ ํํ์ง ์๋๋ค.
๊ทธ๋์ ๋ง์ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ ์ ์๋ค.
2. ํจ์๋ฅผ ํธ์ถํ ๋ ์ ๋ฌํด์ผ ํ ์ธ์์ ์์๋ฅผ ๊ณ ๋ คํด์ผ ํ๋๋ฐ ๋งค๊ฐ๋ณ์๊ฐ ๋ง์์ง๋ฉด ์ค์๋ฅผ ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
3. ๊ทธ๋์ ์ด์์ ์ธ ๋งค๊ฐ๋ณ์๋ 0๊ฐ์ด๊ณ ์ ์์๋ก ์ข๋ค. (3๊ฐ ์ด์์ ๋์ง์๋๊ฒ์ ๊ถ์ฅํ๋ค.)
4. ์ด์์ ์ธ ํจ์๋ ํ๊ฐ์ง ์ผ๋ง ํ๊ณ ๊ฐ๊ธ์ ์๊ฒ ๋ง๋๋๊ฒ ์ข๋ค.
5. 3๊ฐ ์ด์์ ๋งค๊ฐ๋ณ์๊ฐ ํ์ํ๋ฉด ํ๋์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ์ ๋ฌํ๋๊ฒ์ด ์ข๋ค.
๐ฃ ๋ฐํ๋ฌธ
1. return ํค์๋์ ํํ์์ผ๋ก ์ด๋ค์ง ๋ฐํ๋ฌธ์ ์ฌ์ฉํด ์คํ ๊ฒฐ๊ณผ๋ฅผ ํจ์ ์ธ๋ถ๋ก ๋ฐํํ ์ ์๋ค.
2. ํจ์๋ return ํค์๋๋ก JS์ ๋ชจ๋ ๊ฐ์ ๋ฐํํ ์ ์๋ค.
3. ํจ์ ํธ์ถ์ ํํ์์ผ๋ก return ํค์๋๊ฐ ๋ฐํ๊ฐ์ผ๋ก ํ๊ฐ๋๋ค.
4. ๋ฐํ๋ฌธ์ ํจ์ ์คํ์ ์ค๋จํ๊ณ ๋ชธ์ฒด๋ฅผ ๋น ์ ธ๋๊ฐ๋ ์ญํ ๊ณผ
return ํค์๋ ๋ค์ ์ค๋ ํํ์์ ํ๊ฐํด ๋ฐํํ๋ ๋๊ฐ์ง ์ญํ ์ ํ๋ค.
5. ๋ฐํ๋ฌธ์ ์๋ตํ ์ ์๊ณ ์ด๋ ํจ์๋ ์๋ฌต์ ์ผ๋ก undefined๋ฅผ ๋ฐํํ๋ค.
6. return ํค์๋์ ๋ฐํ๊ฐ ์ฌ์ด์ ์ค๋ฐ๊ฟ์ด ์์ผ๋ฉด ์ธ๋ฏธ์ฝ๋ก ์๋ ์ฝ์ ๊ธฐ๋ฅ์ผ๋ก ๋ฐํ๊ฐ์ด ๋ฌด์๋์ undefined๋ฅผ ๋ฐํํ๋ค.
7. ๋ฐํ๋ฌธ์ ํจ์ ๋ด๋ถ์์๋ง ์ฌ์ฉ๊ฐ๋ฅํ๋ค. ์ ์ญ์์ ์ฐ๋ฉด ๋ฌธ๋ฒ ์๋ฌ๊ฐ ๋๋ ์ฃผ์!
๐ ์ฐธ์กฐ์ ์ํ ์ ๋ฌ๊ณผ ์ธ๋ถ ์ํ์ ๋ณ๊ฒฝ
1. ์์ ๊ฐ์ ๊ฐ์ ์ํ ์ ๋ฌ, ๊ฐ์ฒด๋ ์ฐธ์กฐ์ ์ํ ์ ๋ฌ ๋ฐฉ์์ผ๋ก ๋์ํ๋๋ฐ ๋งค๊ฐ๋ณ์๋ ํจ์ ๋ชธ์ฒด ๋ด๋ถ์์ ๋ณ์์ ๋์ผํ๊ฒ ์ทจ๊ธ๋์
ํ์ ์ ๋ฐ๋ผ ๊ฐ์ ์ํ ์ ๋ฌ๊ณผ ์ฐธ์กฐ์ ์ํ ์ ๋ฌ ๋ฐฉ์์ ๋ฐ๋ฅธ๋ค.
2. changeVal ํจ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์ ๋ฌ๋ฐ์ ์์ ํ์ ์ธ์์ ๊ฐ์ฒด ํ์ ์ธ์๋ฅผ ํจ์ ๋ชธ์ฒด์์ ๋ณ๊ฒฝํ๋ค.

์์ ํ์ ์ ์ง์ ๋ณ๊ฒฝํ ์ ์๊ธฐ๋๋ฌธ์ ์ฌํ ๋น์ ํตํด ์๋ก์ ์์๊ฐ์ผ๋ก ๊ต์ฒดํ๊ณ
๊ฐ์ฒด ํ์ ์ ์ง์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ฌํ ๋น ์์ด ์ง์ ํ ๋น๋ ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ค.
์ด๋ ์์ ํ์ ์ธ์๋ ์ฌํ ๋น ๋๋ถ์ ์๋ณธ์ ํผ์๋์ง ์๋๋ค.
๊ทธ๋์ ์ด๋ค ๋ถ์ ํจ๊ณผ๋ ๋ฐ์ํ์ง ์๋๋ค.
ํ์ง๋ง ๊ฐ์ฒด ํ์ ์ธ์๋ ์ฐธ์กฐ ๊ฐ์ด ๋ณต์ฌ๋์ด ๋งค๊ฐ๋ณ์์ ์ ๋ฌ๋๊ธฐ ๋๋ฌธ์ ํจ์ ๋ชธ์ฒด์์
์ฐธ์กฐ ๊ฐ์ ํตํด ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์๋ณธ์ ํผ์๋๋ ๋ถ์ํจ๊ณผ๊ฐ ๋ฐ์ํ๋ค.
๊ฐ์ฒด ํ์ ์ฒ๋ผ ํจ์๊ฐ ์ธ๋ถ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ํ ๋ณํ๋ฅผ ์ถ์ ํ๊ธฐ ํ๋ค๊ธฐ ๋๋ฌธ์ ๊ฐ๋ ์ฑ์ ํด์น๋ค.
๊ทธ๋์ ๊ฐ์ฒด๋ฅผ ๊น์ ๋ณต์ฌ๋ฅผ ํตํด ๋ถ๋ณ ๊ฐ์ฒด๋ก ๋ง๋ค์ด ์ฌ์ฉํด์ผ ํ๋ค.
'Javascript ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 16. ์ค์ฝํ (0) | 2023.07.22 |
|---|---|
| 15. ๋ค์ํ JS ํจ์์ ํํ (0) | 2023.07.22 |
| 13. ์์ ๊ฐ๊ณผ ๊ฐ์ฒด์ ๋น๊ต (0) | 2023.07.15 |
| 12.๊ฐ์ฒด ๋ฆฌํฐ๋ด (0) | 2023.07.15 |
| 11. ํ์ ๋ณํ๊ณผ ๋จ์ถ ํ๊ฐ (0) | 2023.07.14 |