Bibi's DevLog ๐Ÿค“๐ŸŽ

[์ธํ”„๋Ÿฐ] Javascript์ž…๋ฌธ - ํ•จ์ˆ˜1 ๋ณธ๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Javascript ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

[์ธํ”„๋Ÿฐ] 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