Bibi's DevLog ๐ค๐
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ํจ์1 ๋ณธ๋ฌธ
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ํจ์1
๋น๋น bibi 2020. 10. 12. 22:20* ์ด ๊ธ์ ์ธํ๋ฐ์์ ์ ๊ณตํ๋ ํธ๋ ์ค๋์ ์ ๋ฃ ๊ฐ์ '์ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ๋ฐฐ์๋ณด๋ Javascript ์ ๋ฌธ - ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ ์ฝ์ค ๋ ๋ฒจ1'๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๊ฐ์ ๋ด์ฉ์ ๋ํด, ์ ๊ฐ ํ๊ธฐํ๊ณ ๊ตฌ๊ธ๋งํ ๋ด์ฉ์ด ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ์ด๋ณด์ธ ์ ๊ฐ ์ดํดํ ๋๋ก ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๋ถ์ ํํ ๋ด์ฉ์ด ์์ ์ ์์์ ๊ฐ์ํด ์ฃผ์๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ ์ธํ๋ฐ ์ธก ๋ต๋ณ์ ๋ฐ์ ์ ์ด ์์ผ๋(https://bibi6666667.tistory.com/37), ์ ์๊ถ์ ๋ฌธ์ ๊ฐ ๋๋ค๋ฉด ๋ณดํธ ๋ชจ๋(๋น๊ณต๊ฐ)๋ก ์ ํํ๊ฒ ์ต๋๋ค.
ํจ์์ ๊ธฐ์ด
์ด ๊ฐ์ ์ ์ฒด๋ฅผ ํตํ์ด ๊ฐ์ฅ ์ค์ํ ๋ด์ฉ!!
ํจ์Function ๋?
์ํ์ ํจ์์ ์๋นํ ์ ์ฌํฉ๋๋ค.
ํจ์๋ ์ ๋ ฅinput์ด ์๊ณ ์ถ๋ ฅoutput์ด ์๋ค.
์ปดํจํฐ์ ํจ์๋
'๋งค๊ฐ๋ณ์parameter'๋ฅผ ๊ฐ์ง๊ณ ์ด๋ค ์ผ('์ฒ๋ฆฌ')์ ํ ๋ค์ ๊ฒฐ๊ณผ๊ฐ('๋ฆฌํด๊ฐreturn')์ ๋๋ ค์ค๋ค.
๋งค๊ฐ๋ณ์ -> (์ฒ๋ฆฌ) -> ๋ฆฌํด๊ฐ์ ํํ๋ฅผ ๊ฐ์ง๋๋ค.
์๋ ํจ์๋ฅผ ์๋ก ๋ค๋ฉด..
x : ๋งค๊ฐ๋ณ์parameter
f : ํจ์๋ช
(ํจ์ ์ด๋ฆ)
2x + 3 : ์ฒ๋ฆฌ (์ด๋ค ์ผ)
๊ฒฐ๊ณผ๊ฐ์ธ 7, 9.. : ๋ฆฌํดreturn(๊ฐ)
f(x) = 2x + 3 // ์ํ์ ํจ์.
f(2) = 7
f(3) = 9
var foo = function(x) {
return 2 * x + 3;
}
var y= foo(2);
y = foo(3);
ํจ์ ๋ง๋ค๊ธฐ 1
โป๋งค๊ฐ๋ณ์๊ฐ ์๋ค = function() ์ฒ๋ผ, ๊ดํธ๊ฐ ๋น์ด์๋ค.
๋งค๊ฐ ๋ณ์๋ ์๊ณ , ๋ฆฌํด๊ฐ๋ ์๋ ๊ฐ์ฅ ๋จ์ํ ํํ์ ํจ์๋ฅผ ๋ง๋ค์ด ๋ด ์๋ค.
์๋ ํจ์๋ ์ฝ์ ์ฐฝ์ 'I am function'์ ์ถ๋ ฅํ๋ ํจ์์
๋๋ค.
์ถ๋ ฅ๊ณผ ๋ฆฌํด์ ์ ํ ๋ค๋ฅด๋ค๋ ๊ฑธ ๊ธฐ์ตํ์ธ์.
var foo = function() {
console.log("I am function");
}
foo(); // I am function
ํจ์ ํธ์ถ
ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฑธ ํจ์ ํธ์ถ(call)์ด๋ผ๊ณ ํฉ๋๋ค.
ํจ์ ์ด๋ฆ + ๊ดํธ๊ฐ ํ์ํฉ๋๋ค.
(ํจ์๋ช ๋ง ๋ถ๋ฅธ๋ค๊ณ ํด์ ํจ์๊ฐ ํธ์ถ๋์ง ์๋๋ค. ๊ดํธ๊น์ง ๊ฐ์ด ์ ์ด์ค์ผ ํ๋ค.)
foo();
๋งค๊ฐ๋ณ์parameter ๊ฐ ์๋ ํจ์ ์ ์ํ๊ธฐ
๋งค๊ฐ๋ณ์๊ฐ ์๋ ํจ์๋
ํจ์๋ช (๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2, ..) {
}
ํํ์ด๋ค.
๋งค๊ฐ๋ณ์๋ ์ฌ๋ฌ ๊ฐ๊ฐ ์ฌ ์ ์๋ค.
(โป ๋ฐ๋ฉด, ๋ฆฌํด๊ฐ์ ํ๋๋ง ์ฌ ์ ์๋ค.)
// ๋งค๊ฐ๋ณ์๊ฐ ํ๋ ์๋ ํจ์.
var sayHi = function(name) {
console.log("Hi, " + name);
}
sayHi("Siri"); // Hi, Siri
// ๋งค๊ฐ๋ณ์๊ฐ ๋ ๊ฐ ์๋ ํจ์.
var add = function(n1, n2) {
console.log(n1 + "+" + n2 + "=" + (n1 + n2))
};
add(10, 20); // 10 + 20 = 30
๋งค๊ฐ๋ณ์๊ฐ ์๋ ํจ์ ์ฌ์ฉํด ๋ณด๊ธฐ
foo2("honux");
sayHi("Siri");
add(10, 20);
// ํจ์๋ช
(๋งค๊ฐ๋ณ์ ๊ฐ); ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋ค.
์์
๋งค๊ฐ๋ณ์๋ฅผ ๋ ๊ฐ ์ฌ์ฉํ๋ ๋ค์ ํจ์๋ฅผ ๊ตฌํํ๊ณ ์คํํด ๋ด
์๋ค.
์ด๋ค ๋ฐฉ์์ผ๋ก ๋์ํ๋์ง๋ ์ค์ค๋ก ์๊ฐํด ๋ณด์ธ์.
var repeat = function(text, num) {
//code here
};
repeat("Hello", 5);
๋ด๊ฐ ๋ง๋ ์ฝ๋ : text์ ๊ธ์์๋ฅผ ์ธ์ num๊ณผ ๋น๊ตํด ๋ง์ผ๋ฉด true, ํ๋ฆฌ๋ฉด false ๋ฐํํ๋ ํจ์
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
์ฝ์ ์ฐฝ์ repeat("ํ
์คํธ",์ซ์)๋ฅผ ์
๋ ฅํด ํ
์คํธ์ ๊ธ์ ์๋ฅผ ์ฒดํฌํด ๋ณด์ธ์.
<script>
var repeat = function (text, num) {
if (text.length === num){
console.log("์
๋ ฅํ ํ
์คํธ์ ๊ธธ์ด๋ "+text.length+"์
๋๋ค." )
return true;
} else if (text.length != num){
console.log("์
๋ ฅํ ํ
์คํธ์ ๊ธธ์ด๋ "+text.length+"์
๋๋ค." )
return false;
}
};
</script>
</body>
</html>
์ ๋ต : text๋ฅผ num๋ฒ ๋ฐ๋ณตํ๋ ํจ์. '0'..
** ํจ์๋ช ์ด ๊ณง ํํธ์๋ค! ใ ใ
var repeat = function(text, num) {
for (var i=0; i < num; i++) {
console.log(i + ":" + text);
}
};
repeat("hello", 5);
// 0: hello
// 1: hello
// 2: hello
// 3: hello
// 4: hello