μ›Ή/JavaScript

[Javascript] ν•¨μˆ˜,인수,인자,ν™”μ‚΄ν‘œν•¨μˆ˜

Judith Hopps 2023. 1. 10. 14:43
λ°˜μ‘ν˜•

πŸ’‘ κΈ°λ³Έ 문법

function ν•¨μˆ˜λͺ… (μž…λ ₯κ°’) {
// μˆ˜ν–‰ν•  일
return λ°˜ν™˜κ°’ // μžˆμ„ μ‹œ
}
​
ν•¨μˆ˜λͺ…(μž…λ ₯κ°’);

 


 

I. ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€λŠ” 것

1. 반볡될 수 μžˆλŠ” μž‘μ—…μ„ μ •μ˜ν•΄λ‘λŠ” 것

// ν•¨μˆ˜ μ‚¬μš© μ „
let a = 3, b = 4;
​
console.log(`${a} + ${b} = ${a + b}`);
console.log(`${a} - ${b} = ${a - b}`);
console.log(`${a} * ${b} = ${a * b}`);
console.log(`${a} / ${b} = ${a / b}`);
​
let c = 10, d = 2;
​
console.log(`${c} + ${d} = ${c + d}`);
console.log(`${c} - ${d} = ${c - d}`);
console.log(`${c} * ${d} = ${c * d}`);
console.log(`${c} / ${d} = ${c / d}`);
​
let e = 7, f = 5;
​
console.log(`${e} + ${f} = ${e + f}`);
console.log(`${e} - ${f} = ${e - f}`);
console.log(`${e} * ${f} = ${e * f}`);
console.log(`${e} / ${f} = ${e / f}`);

 

function allArithemics (x, y) {
console.log(`${x} + ${y} = ${x + y}`);
console.log(`${x} - ${y} = ${x - y}`);
console.log(`${x} * ${y} = ${x * y}`);
console.log(`${x} / ${y} = ${x / y}`);
}
​
let a = 3, b = 4;
allArithemics(a, b);
​
let c = 10, d = 2;
allArithemics(c, d);
​
let e = 7, f = 5;
allArithemics(e, f);



2. input을 λ°›μ•„ output을 λ°˜ν™˜ return ν•˜λŠ” 것

function add(x, y) {
return x + y; // ⭐️ 값을 λ°˜ν™˜
}
​
let z = add(2, 3);
​
console.log(z);

 

console.log(add(4, 5));

 

console.log(
add(add(6, 7), add(8, 9))
);




function isOdd (x) {
return !!(x % 2);
}
​
let num = 12;
​
console.log(
`${num}(λŠ”)은 ${
isOdd(num) ? '홀' : '짝'
}μˆ˜μž…λ‹ˆλ‹€.`
);



a. input으둜 λ°›λŠ” κ°’ - μΈμˆ˜μ™€ μΈμž

function add(x, y) {
// x, yλ₯Ό 인자 λ˜λŠ” λ§€κ°œλ³€μˆ˜(parameter)라 뢀름
return x + y;
}
​
// a, bλ₯Ό 인수(argument)라 뢀름
let z = add(2, 3);
  • μΌλ°˜μ μœΌλ‘œλŠ” ꡳ이 κ΅¬λΆ„ν•˜μ§€ μ•Šκ³  ν˜Όμš©ν•΄μ„œ μ‚¬μš©ν•¨

 

b. κΌ­ 인자λ₯Ό λ°›κ±°λ‚˜ 값을 λ°˜ν™˜ν•˜λŠ” 것은 μ•„λ‹˜

let currentTemp = 24.5;
​
function logCurrentTemp () {
console.log(`ν˜„μž¬ μ˜¨λ„λŠ” 섭씨 ${currentTemp}λ„μž…λ‹ˆλ‹€.`);
}
​
console.log('λ°˜ν™˜κ°’:', logCurrentTemp());
  • return λ¬Έμ΄ μ •μ˜λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©΄ undefined λ°˜ν™˜
  • πŸ’‘ console.log μ‹€ν–‰ λ’€ undefinedκ°€ λœ¨λŠ” 이유

 

c. ⭐️ return문은 κΌ­ λ§ˆμ§€λ§‰μ—

function add (x, y) {
console.log(`${x}와 ${y}λ₯Ό λ”ν•©λ‹ˆλ‹€.`);
return x + y;
console.log(`κ²°κ³ΌλŠ” ${x + y}μž…λ‹ˆλ‹€.`);
}
​
console.log(add(2, 7));

 

d. πŸ’‘ ν˜Έμ΄μŠ€νŒ… hoisting

// ν•¨μˆ˜λŠ” 싀행문보닀 λ‚˜μ€‘μ— μ •μ˜ν•˜λŠ” 것이 κ°€λŠ₯
// λ³€μˆ˜λ‚˜ μƒμˆ˜λŠ” λΆˆκ°€λŠ₯! (var μ œμ™Έ)
console.log(add(2, 7));
​
function add (x, y) {
return x + y;
}




 

II. ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” 방법듀

1. ν•¨μˆ˜ μ„ μ–Έ

function add (x, y) {
return x + y;
}
​
console.log(add(2, 7));

2. μƒμˆ˜λ‚˜ λ³€μˆ˜μ— ν•¨μˆ˜ λŒ€μž… ν•¨μˆ˜λ„ κ°’

const subt = function (x, y) {
return x - y;
}
​
console.log(subt(7, 2));




function add (x, y) {
return x + y;
}
​
console.log(add(2, 7));

 

// πŸ’‘ 기쑴의 ν•¨μˆ˜λ₯Ό μž¬μ •μ˜ν•˜λŠ”κ²ƒλ„ κ°€λŠ₯
add = function (x, y) {
console.log(`${x}와 ${y}λ₯Ό λ”ν•©λ‹ˆλ‹€.`);
console.log(`κ²°κ³ΌλŠ” ${x + y}μž…λ‹ˆλ‹€.`);
return x + y;
}
​
console.log(add(2, 7));

3. ν™”μ‚΄ν‘œ ν•¨μˆ˜

// ν•œ 쀄 μ•ˆμ— κ°’λ§Œ λ°˜ν™˜μ‹œ
const mult = (x, y) => x * y;
​
console.log(mult(2, 7));

 

// 두 쀄 μ΄μƒμ˜ μž‘μ—…μ΄ μžˆμ„ μ‹œ
const mult = (x, y) => {
console.log(`${x}와 ${y}λ₯Ό κ³±ν•©λ‹ˆλ‹€.`);
console.log(`κ²°κ³ΌλŠ” ${x * y}μž…λ‹ˆλ‹€.`);
return x * y;
};
​
console.log(mult(2, 7));

 

// μΈμžκ°€ ν•˜λ‚˜μΌ λ•ŒλŠ” κ΄„ν˜Έ 없이 μ„ μ–Έ κ°€λŠ₯
const pow = x => x ** 2;
console.log(pow(3));
  • ⚠️ ν™”μ‚΄ν‘œ ν•¨μˆ˜λŠ” function μ„ μ–Έ ν•¨μˆ˜μ™€ κΈ°λŠ₯ 차이가 있음 μ΄ν›„ 닀름



⚠️ 2번과 3번 λ°©λ²•μœΌλ‘œ μ„ μ–Έν•œ ν•¨μˆ˜λŠ” ν˜Έμ΄μŠ€νŒ…λ˜μ§€ μ•ŠμŒ

console.log(div(8, 4));
​
const div = function (x, y) {
return x / y;
}

 

console.log(div(8, 4));
​
const div = (x, y) => x / y;

πŸ’‘ ν•¨μˆ˜ 생성 μ‹œμ μ΄ λ‹€λ₯΄κΈ° λ•Œλ¬Έ

  • 1번 λ°©λ²•μœΌλ‘œ μ •μ˜λœ ν•¨μˆ˜λŠ” μ—”μ§„μ˜ μ½”λ“œ μ‹€ν–‰ 이전 미리 생성됨
λ°˜μ‘ν˜•