-
JavaScript ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด - ํจ์๐ FrontEnd/JavaScript 2022. 6. 3. 15:50
์์ํ๋ฉด์
์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํฉ๋๋ค. ์ด๋ฒ์ ํจ์๋ฅผ ๊ณต๋ถํฉ๋๋ค.
1. ํจ์
(1) ํจ์๋?
- ํจ์๋ ์ผ๋ จ์ ์คํ๋ฌธ์ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ์ ๊ฐ๋ฆฌํต๋๋ค.
- ํจ์์ ์ ์ฅ๋ ์ผ๋ จ์ ์คํ๋ฌธ์ ํจ์ ํธ์ถ๋ฌธ์ ์ํด ์ธ์ ๋ ์คํํ ์ ์์ต๋๋ค.
(2) ๊ธฐ๋ณธ ํจ์ ์ ์๋ฌธ
// ๊ธฐ๋ณธํ function ํจ์๋ช () { // ํจ์ ์ ์๋ฌธ ์คํ๋ฌธ; } ํจ์๋ช (); // ํจ์ ํธ์ถ๋ฌธ
// ์ function test() { document.write("hello"); } test();
(2) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>๋ฐฐ๊ฒฝ ์ ๋ฐ๊พธ๊ธฐ</title> <script type="text/javascript"> let color = ["red", "orange", "yellow", "green", "blue", "purple"]; let i = 0; // ๋ณ์ i์ ์ด๊น๊ฐ์ ์ง์ ํฉ๋๋ค // ๋ฐฐ๊ฒฝ์ ํจ์(colorBg())๋ฅผ ์ ์ํฉ๋๋ค function colorBg() { i++; // ๋ณ์ i ์ ๋ฐ์ดํฐ๋ฅผ 1์ฉ ์ฆ๊ฐ์ํต๋๋ค if (i >= color.length) { i = 0; } // <body> ์์๋ฅผ ๋ถ๋ฌ์ ๋ณ์ bodyTag์ ์ฐธ์กฐ์ํต๋๋ค let bodyTag = document.getElementsByTagName("body")[0]; // ์คํ์ผ(CSS)๋ฅผ ์ด์ฉํด <body>์ ๋ฐฐ๊ฒฝ ์์์ด ๋ฐ๋๋๋ค. bodyTag.style.backgroundColor = color[i]; } </script> </head> <body> <button onclick="colorBg();">๋ฐฐ๊ฒฝ์์ ๋ฐ๊ฟ๋ณด์์</button> </body> </html>
(3) ๋งค๊ฐ ๋ณ์๊ฐ ์๋ ํจ์ ์ ์๋ฌธ
- ๋งค๊ฐ ๋ณ์๋ ํจ์๋ฅผ ํธ์ถํ์์ ๋ ์ ๋ฌํ ๊ฐ์ ์ ์ฅํ๋ ๋ณ์๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
- ์ด๋ ๊ฒ ์ ๋ฌ๋ ๊ฐ์ ํจ์ ์ ์๋ฌธ ๋ด์ ์ผ๋ จ์ ์คํ๋ฌธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
// ๊ธฐ๋ณธํ function ํจ์๋ช (๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2, ... ๋งค๊ฐ๋ณ์n) { // ํจ์ ์ ์๋ฌธ ์คํ๋ฌธ; } ํจ์๋ช (๊ฐ1, ๊ฐ2, ... ๊ฐn); // ํจ์ ํธ์ถ๋ฌธ
// ์ function test(num1, num2) { document.write(num1 + num2) } test(100, 300);
(3) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>์์ด๋ ๋น๋ฐ๋ฒํธ ํ์ธํ๊ธฐ</title> <script type="text/javascript"> function login(id, pw) { if (id == "user") { // ๋ฐฉ๋ฌธ์๊ฐ ์ ๋ ฅํ id ๊ฐ "user"๊ณผ ์ผ์นํ ๊ฒฝ์ฐ if (pw == "0000") { // ๋ฐฉ๋ฌธ์๊ฐ ์ ๋ ฅํ pwd ๊ฐ "0000"๊ณผ ์ผ์นํ ๊ฒฝ์ฐ document.write(id + "๋ ๋ฐฉ๋ฌธ์ ํ์ํฉ๋๋ค!"); } else { // ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ alert("์๋ชป๋ ๋น๋ฐ๋ฒํธ์ ๋๋ค."); } } else { // ๋ฐฉ๋ฌธ์๊ฐ ์ ๋ ฅํ id๊ฐ ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ alert("์กด์ฌํ์ง ์๋ ์์ด๋์ ๋๋ค."); } } // ์ง์ ์๋ต ์ฐฝ์ ์ด์ฉํด ๋ฐฉ๋ฌธ์์๊ฒ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ์ต๋๋ค let user_id = prompt("์์ด๋๋ฅผ ์ ๋ ฅํ์ธ์", ""); let user_pwd = prompt("ํจ์ค์๋๋ฅผ ์ ๋ ฅํ์ธ์", ""); // ๋ฐฉ๋ฌธ์๊ฐ ์ ๋ ฅํ ๋น๋ฐ๋ฒํธ์ ์์ด๋๋ฅผ ํจ์์ ๋งค๊ฐ๋ณ์์ ์ ๋ฌํฉ๋๋ค login(user_id, user_pwd); </script> </head> <body> </body> </html>
(4) ๋ด์ฅ ํจ์
- ๋ด์ฅ ํจ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ด์ฅ๋ ํจ์ ์ ์๋ฌธ์ ๋งํฉ๋๋ค.
- ํจ์ ์ ์๋ฌธ์ ์ ์ธ ์์ด ๋จ์ง ํจ์ ํธ์ถ๋ง์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ ์ด๋ฏธ ๋ด์ฅ๋ ํจ์๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ค์์ ๋ด์ฅ ํจ์๋ฅผ ์ ๋ฆฌํ ํ์ ๋๋ค.
์ข ๋ฅ ์ค๋ช ์ฌ์ฉ ์ parseInt() ๋ฌธ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ ๋ฐ์ดํฐ๋ก ๋ฐ๊พผ๋ค parseInt("5.12") -> 5 parseFloat() ๋ฌธ์ํ ๋ฐ์ดํฐ๋ฅผ ์ค์ํ ๋ฐ์ดํฐ๋ก ๋ฐ๊พผ๋ค parseFloat("5.12") -> 5.12 String() ๋ฌธ์ํ ๋ฐ์ดํฐ๋ก ๋ฐ๊พผ๋ค String(5) -> "5" Number() ์ซ์ํ ๋ฐ์ดํฐ๋ก ๋ฐ๊พผ๋ค Number("5") -> 5 Boolean() ๋ ผ๋ฆฌํ ๋ฐ์ดํฐ๋ก ๋ฐ๊พผ๋ค Boolean(5) -> true isNaN() ๋ฐ์ดํฐ์ ์ซ์๊ฐ ์๋ ๋ฌธ์๋ฅผ ํฌํจํ๋ฉด true ๋ฅผ ๋ฐํํ๋ค
-> is Not a Number?isNaN("5-3") -> true
inNaN("53") -> falseeval() ๋ฌธ์ํ ๋ฐ์ดํฐ๋ฅผ ํฐ๋ฐ์ดํ๊ฐ ์๋ ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ์ฒ๋ฆฌํ๋ค eval("15+5") -> 20 2. ํจ์์์ return ๋ฌธ์ ์ญํ
- ํจ์ ์ ์๋ฌธ์ return ๋ฌธ์ด ์ฌ์ฉ๋๋ฉด ๋ฐํ๊ณผ ์ ์ง์ ์๋ฏธ๋ฅผ ๋ด์ต๋๋ค.
(1) ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ return ๋ฌธ
// ๊ธฐ๋ณธํ function ํจ์๋ช () { ์คํ๋ฌธ; return ๋ฐ์ดํฐ ๊ฐ; } let ๋ณ์ = ํจ์๋ช ();
// ์ function calc() { let result = 100+200; return result; } let num = calc(); document.write(num);
(1) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ return</title> <script type="text/javascript"> function rv(a, b) { let num = a * b; return num; } let result = rv(2, 5); document.write(result); </script> </head> <body> </body> </html>
(2) ๊ฐ์ ์ข ๋ฃ ์ญํ ์ ํ๋ return ๋ฌธ
// ๊ธฐ๋ณธํ function ํจ์๋ช () { ์คํ๋ฌธ1; return; ์คํ๋ฌธ2; // ์คํ๋ฌธ2๋ ์คํ๋์ง ์๊ณ ํจ์๋ฅผ ์ข ๋ฃํฉ๋๋ค } ํจ์๋ช ();
(2) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>๊ฐ์ ์ข ๋ฃ return</title> <script type="text/javascript"> function funcBye() { document.write("์๋ "); return; // ํจ์๋ฅผ ๊ฐ์ ์ข ๋ฃํฉ๋๋ค document.write("ํ์ธ์"); } funcBye(); </script> </head> <body> </body> </html>
(3) ์ฌ๊ท ํจ์ ํธ์ถ
- ์ต์ด ํจ์๋ฅผ ํธ์ถํ๋ฉด ํจ์ ์ ์๋ฌธ ๋ด์์ ์คํ๋ฌธ์ผ๋ก ํจ์๋ฅผ ๋ค์ ํธ์ถํ๋ ๊ฒ์ ์ฌ๊ท ํจ์ ํธ์ถ์ด๋ผ๊ณ ํฉ๋๋ค.
- ํจ์๋ฅผ ๋ฐ๋ณต๋ฌธ์ฒ๋ผ ์ฌ๋ฌ ๋ฒ ํธ์ถํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
// ๊ธฐ๋ณธํ function ํจ์๋ช () { ์คํ๋ฌธ; ํจ์๋ช (); } ํจ์๋ช ();
(3) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>์ฌ๊ท ํจ์ ํธ์ถ</title> <script type="text/javascript"> let num = 0; function fnc() { num++; // num์ ๋ฐ์ดํฐ๊ฐ 1์ฉ ์ฆ๊ฐ๋ฉ๋๋ค document.write(num, "<br>"); if (num == 10) { return; } // ์ฌ๊ทํจ์ ํธ์ถ fnc(); // fnc ํจ์๋ฅผ ํธ์ถํฉ๋๋ค } fnc(); // fnc ํจ์๋ฅผ ํธ์ถํฉ๋๋ค </script> </head> <body> </body> </html>
3. ์ง์ญ ๋ณ์์ ์ ์ญ ๋ณ์
- ์ง์ญ๋ณ์๋ ํจ์ ๋ด์์ ์ ์๋ ๋ณ์์ด๋ฉฐ ํจ์ ๋ด์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ทธ์ ๋ฐ๋๋ก ์ ์ญ๋ณ์๋ ํ์ฌ ํ์ด์ง ์ด๋์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>์ง์ญ ๋ณ์์ ์ ์ญ ๋ณ์</title> <script type="text/javascript"> var num = 200; // ์ ์ญ ๋ณ์ function fnc() { var num = 500; // ์ง์ญ ๋ณ์ } fnc(); //ํจ์๋ฅผ ํธ์ถํฉ๋๋ค document.write(num); // ์ ์ญ ๋ณ์ num์ 200์ด ์ถ๋ ฅ๋ฉ๋๋ค </script> </head> <body> </body> </html>
* ํจ์ ์คํ๋ฌธ ๋ด์ ๋ํ๋ ๋ณ์ var num ์ ์ง์ญ ๋ณ์์ด๋ฏ๋ก ํจ์ ๋ฐ์์๋ ๋ถ๋ฌ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ง๋ฌด๋ฆฌํ๋ฉฐ
์ด๋ ๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์๋ฅผ ๊ณต๋ถํด๋ณด์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด ์ ๋ฆฌ๋ ํจ์๊ฐ ๋ง์ง๋ง์ ๋๋ค.
๋๊ธ๊ณผ ๊ณต๊ฐ์ ํญ์ ํ์์ ๋๋ค!
'๐ FrontEnd > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ