๐พ ํจ์(function)๋?
์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ ํ๋์ ๊ธฐ๋ฅ์ ์ํํ๋ ์ฝ๋ ๋ธ๋ก์ด๋ฉฐ, ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ค. ํจ์๋ ์ธ์๋ฅผ ๋ฐ์๋ค์ด๊ณ ์คํํ ์ฝ๋ ๋ธ๋ก ๋ด์์ ์ฒ๋ฆฌ๋ฅผ ์ํํ ๋ค์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ์ ์๋ค.
ํจ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฆ, ๋งค๊ฐ๋ณ์, ์คํํ ์ฝ๋ ๋ธ๋ก ๋ฐ ๋ฐํ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๊ณ , ํจ์๋ฅผ ํธ์ถํ๋ฉด ์ฝ๋ ๋ธ๋ก์ด ์คํ๋๊ณ ๋ฐํ๊ฐ์ด ํธ์ถ์์๊ฒ ๋ฐํ๋๋ค.
// ํจ์์ ์ธ๊ณผ ํธ์ถ ๋ฌธ๋ฒ
// 1. ๋งค๊ฐ๋ณ์๋ฅผ ์๋ฃ๊ณ ๋ง๋๋ ๋ฐฉ๋ฒ
function ํจ์๋ช
(){
// ํจ์๊ฐ ํธ์ถ๋์์ ๋ ์คํํ๊ณ ์ ํ๋ ์คํ๋ฌธ;
}
ํจ์๋ช
();
// 2. ๋งค๊ฐ๋ณ์๋ฅผ ๋ฃ๊ณ ๋ง๋๋ ๋ฐฉ๋ฒ
function ํจ์๋ช
(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2...){
// ํจ์๊ฐ ํธ์ถ๋์์ ๋ ์คํํ๊ณ ์ ํ๋ ์คํ๋ฌธ;
}
ํจ์๋ช
(์ธ์๊ฐ1, ์ธ์๊ฐ2...);
• ํจ์๋ช : ํจ์๋ฅผ ๊ตฌ๋ถํ๋ ์๋ณ์(identifier)
• ๋งค๊ฐ๋ณ์(parameter): ํจ์๋ฅผ ํธ์ถํ ๋ ์ธ์(argument)๋ก ์ ๋ฌ๋ ๊ฐ์ ํจ์ ๋ด๋ถ์์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๋ณ์
• ์ธ์(argument): ํจ์๊ฐ ํธ์ถ๋ ๋ ํจ์๋ก ๊ฐ์ ์ ๋ฌํด์ฃผ๋ ๋ณ์๋ ์์
๐พ ํจ์ ๋ด๋ถ์ ์ง์ญ ๋ณ์(local variable)์ ์ธ๋ถ์ ์ ์ญ ๋ณ์(global variable)
let name = "fay"; // ์ ์ญ ๋ณ์
function greeting() {
let sayHi = "์๋
ํ์ธ์"; // ์ง์ญ ๋ณ์
name = "Elly";
return `${sayHi}, ${name}`
}
greeting(); // "์๋
ํ์ธ์, Elly"
console.log(sayHi) // ReferenceError: sayHi is not defined
→ ํจ์ ๋ด์์ ์ ์ธํ ๋ณ์์ธ ์ง์ญ ๋ณ์๋ ํจ์ ์์์๋ง ์ ๊ทผํ ์ ์๋ค.
→ ์ ์ญ ๋ณ์๋ ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์ง์ญ ๋ณ์๊ฐ ์๋ค๋ฉด, ํจ์ ๋ด๋ถ์์ ์ ๊ทผ ๋ฐ ์์ ํ ์ ์๋ค.
๐พ ํจ์ ์ด๋ฆ์ง๊ธฐ
ํจ์๋ ์ด๋ค ๋์์ ์ํํ๊ธฐ ์ํ ์ฝ๋๋ฅผ ๋ชจ์๋์ ๊ฒ์ผ๋ก, ํจ์์ ์ด๋ฆ์ ๋๊ฐ ๋์ฌ์ด๋ค. ํจ์ ์ด๋ฆ์ ๊ฐ๋ฅํ ํ ๊ฐ๊ฒฐํ๊ณ ๋ช ํํด์ผ ํ๋ฉฐ, ์ด๋ค ๋์์ ํ๋์ง ์ค๋ช ํ ์ ์์ด์ผ ํ๋ค.
ํจ์๊ฐ ์ด๋ค ๋์์ ํ๋์ง ์ถ์ฝํด์ ์ค๋ช ํด ์ฃผ๋ ๋์ฌ๋ฅผ ์ ๋์ด๋ก ๋ถ์ฌ ํจ์ ์ด๋ฆ์ ๋ง๋๋ ๊ฒ ๊ด์ต์ด๋ฉฐ, ์๋์ ๊ฐ์ ์ ๋์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
show... // ๋ฌด์ธ๊ฐ๋ฅผ ๋ณด์ฌ์ค
age... // ๊ฐ์ ๋ฐํํจ
calc... // ๋ฌด์ธ๊ฐ๋ฅผ ๊ณ์ฐํจ
create... // ๋ฌด์ธ๊ฐ๋ฅผ ์์ฑํจ
check... // ๋ฌด์ธ๊ฐ๋ฅผ ํ์ธํ๊ณ ๋ถ๋ฆฐ๊ฐ์ ๋ฐํํจ
๐พ ํ๋์ ๋์๋ง ๋ด๋นํ๋ ํจ์
ํจ์๋ ํจ์ ์ด๋ฆ์ ์ธ๊ธ๋์ด ์๋ ๋์์ ์ ํํ ์ํํด์ผ ํ๋ฉฐ, ๋ ๋ฆฝ์ ์ธ ๋ ๊ฐ์ ๋์์ ๋ ๋ฆฝ๋ ํจ์ ๋ ๊ฐ์์ ๋๋ ์ ์ํํ ์ ์๊ฒ ํด์ผ ํ๋ค. ํ ์ฅ์์์ ๋ ๋์์ ๋์์ ํ์๋ก ํ๋ ๊ฒฝ์ฐ์๋ ์ 3์ ํจ์๋ฅผ ๋ง๋ค์ด ๊ทธ๊ณณ์์ ๋ ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
๐ ์ง์ํด์ผ ํ ํจ์ ์ฌ์ฉ๋ฒ
• getAge
ํจ์์ ๋์ด๋ฅผ ์ป์ด์ค๋ ๋์ ๋ฟ๋ง ์๋๋ผ ๋์ด๋ฅผ ์ถ๋ ฅํด ์ฃผ๋ ๋์์ ๋ฃ๋ ๊ฒฝ์ฐ
• createForm
ํจ์์ form์ ๋ง๋ค๊ณ ์ด๋ฅผ ๋ฐํํ๋ ๋์ ๋ฟ๋ง ์๋๋ผ form์ ๋ฌธ์์ ์ถ๊ฐํ๋ ๋์ ๋ฑ์ ๋ฃ๋ ๊ฒฝ์ฐ
• checkPermission
ํจ์์ ์น์ธ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๋์ ๋ฟ๋ง ์๋๋ผ ์น์ธ ์ฌ๋ถ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฉ์์ง๋ฅผ ๋์ฐ๋ ๋์์ ํจ๊ป ๋ฃ๋ ๊ฒฝ์ฐ
ํจ์๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค๋ฉด ํ ์คํธ์ ๋๋ฒ๊น ์ด ์ฌ์์ง๊ณ , ํจ์ ๊ทธ ์์ฒด๋ก ์ฃผ์์ ์ญํ ๊น์ง ํ๊ฒ ๋๋ค.
์๋ฃ์ถ์ฒ: JAVASCRIPT.INFO
โ๏ธ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ์๋ชป๋ ์ ๋ณด๋ ๋ ๊ณต์ ํ ๋ด์ฉ์ด ์์ผ๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค ๐