Web/JS
[Web/JS] 자바스크립트 - 함수2
poopooreum
2024. 5. 10. 21:16
반응형
✏️ 함수 1편 맛보기
https://pooreumjung.tistory.com/419
✏️ 매개변수, 인수, return
함수를 실행하게 되면 그 함수로 필요한 값을 함수로 넘겨주고자 하는 경우가 발생하게 됩니다. 예를 들어서 두 변수를 더하는 sum함수를 만들고 싶고, sum함수에서는 두 변수를 받아서 계산을 하고 싶은 경우가 있는 경우가 있죠. 이럴 때 sum함수에서 넘어오는 값들을 받기 위해서 변수들을 선언해야 하는데 이것을 매개변수라고 합니다. 코드로 가보겠습니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>함수</title>
<style>
body {
padding-top:20px;
text-align:center;
}
</style>
</head>
<body>
<script>
function addNumber(num1, num2){
var sum = num1 + num2;
return sum;
}
var result = addNumber(2, 3);
document.write("두 수를 더 한 값 : " + result);
</script>
</body>
</html>
// addNumber(num1, num2)로 선언되어 있는 것을 볼 수 있는데 이때 num1과 num2가 매개변수입니다. 그리고 return sum이라는 문장이 있는데 이는 sum값을 반환한다라는 의미로 생각하면 됩니다.
// 함수 밑에 var result = addNumber(2,3);으로 되어 있는데 여기서 2와 3은 인수(argument)입니다. 이 문장을 해석해보면 addNumber함수로 2와 3을 넘겨주 addNumber함수에서는 2와 3을 더한 값을 sum에 저장해서 값을 반환하여 result 변수에 저장합니다.
✏️ 매개변수 기본값 지정
ES6부터는 함수에서 매개변수를 선언할 때 기본값을 지정하는 기능이 생겼습니다.
<body>
<script>
function multiple(a, b = 5, c = 10) { // b = 5, c = 10으로 기본값 지정
return a * b + c;
}
var result1 = multiple(5, 10, 20); // a = 5, b = 10, c = 20
document.write("multiple(5, 10, 20)을 실행하면 결과는 " + result1 + "입니다. <br>")
var result2 = multiple(10, 20); // a = 10, b = 20, c = 10(기본값)
document.write("multiple(10, 20)을 실행하면 세번째 매개변수는 기본값을 사용하고 결과는 " + result2 + "입니다.<br>")
var result3 = multiple(30); // a = 30, b = 5(기본값), c = 10(기본값)
document.write("multiple(30)을 실행하면 두번째, 세번째 매개변수는 기본값을 사용하고 결과는 " + result3 + "입니다.")
</script>
</body>
// multiple함수에서 b=5, c=10을 미리 지정해놓았습니다. 예를 들어 multiple(10,20), multiple(30)과 같은 경우에서 값을 전부다 넘겨받지 못했을 때 기본값을 사용할 수 있습니다.
✏️ 익명 함수
이때까지 만났던 함수들은 모두 함수의 이름이 있었지만 익명 함수는 이름 없이 함수를 선언할 수 있습니다.
function(a, b){
return a + b;
}
<script>
var sum = function(a, b){
return a + b;
}
document.write("함수 실행 결과 : " + sum(10, 20) );
</script>
✏️ 즉시 실행 함수
일반적으로 함수는 선언하고 필요할 때마다 호출해서 실행하는 방법을 많이 사용하는데 한 번만 실행하는 함수라면 함수를 정의하면서 동시에 실행할 수 있는데 이를 즉시 실행 함수라고 합니다.
기본형 =>(function(){명령}()); 또는 기본형 => (function(매개변수){명령}(인수));
<body>
<script>
(function() {
var userName = prompt("이름을 입력하세요.");
document.write("안녕하세요? <span class='accent'>" + userName + "</span>님!");
}());
</script>
</body>
<body>
<script>
(function(a, b){ // 함수 선언을 위한 매개변수
sum = a + b;
}(100, 200)); // 마지막에 함수 실행을 위한 인수
document.write("함수 실행 결과 : " + sum);
</script>
</body>
✏️ 화살표 함수
ES6 버전부터는 =>표기법을 사용해 함수 선언을 좀 더 간단히 할 수 있는데 이를 화살표 함수라고 합니다.
기본형 => (매개변수) => {함수 내용}
const hi = () => "안녕하세요?"; // 매개변수가 없는 화살표 함수
let hi = user => { document.write (user + "님, 안녕하세요?"); } // 매개변수가 1개인 경우
let sum = (a, b) => a + b; // 매개변수가 2개 이상인 경우
반응형