함수는 입력에 따라 그에 걸맞는 작업을 하는 하나의 작업 단위로,
논리적인 일련의 작업을 하는 하나의 단위를 함수라고 한다.
함수는 입력을 받아서 코드블록 내부의 코드를 실행한 후 함수의 실행결과를 반환하는 과정 묶음이다.
js에서 함수를 정의하는 방법은 함수선언문
과 함수표현식
이 있다.
// 함수선언문으로 정의한 함수
function greeting () {
console.log('hello world')
};
// 함수표현식으로 정의한 함수
let greeting = function () {
console.log('hello world')
};
함수선언문은 function
이라는 함수 선언 키워드를 사용하였고
함수표현식은 변수 선언 키워드인 let
을 사용하여 표현한다.
앞서 다룬 코드는
console.log()
로 콘솔에 입력한 내용이 출력되지 않는다.
함수 내부에 있는console.log()
가 실행되지 않기 때문인데
그 이유는 함수 호출을 하지 않았기 때문이다.
함수 내부에 있는 코드는 함수를 호출 했을 때만 실행되기 때문이다.
정리하면 함수 호출은 함수를 실행시키는 명령을 전달하는 것이다.
unction greeting () {
console.log('hello world')
};
greeting() // 'hello world'
let greeting = function () {
console.log('hello world')
};
greeting() // 'hello world'
이처럼 함수명(greeting)뒤에 소괄호()
를 붙이면 함수 호출이 가능하다.
매개변수는 함수를 정의할 때 선언하고, 함수 코드 블록 안에서 변수처럼 취급된다.
함수를 정의할 때 소괄호()
에 매개변수를 추가할 수 있다.
이 매개변수는 함수 내부에서 변수와 같은 역할을 한다.
function greeting (name) {
console.log('hello ' + name);
}
greeting
이라는 이름의 함수가 name
이라는 매개변수를 가지고 있지만
아무것도 할당되어 있지 않아 name
은 undifined
로 초기화 되어있다.
name
에 값을 할당하기 위해 전달인자 를 사용한다.
function greeting (name) {
console.log('hello ' + name);
}
greeting('kimcoding'); // 'hello kimcoding'
함수를 호출할 때 소괄호 안에 값을 넣어 매개변수 값을 할당할 수 있다.
이것이 전달인자 이다.
만약 매개변수 수보다 적은 전달인자가 전달되면
아무것도 전달되지 않은 매개변수는 undifined
로 초기화 된다.
function getUserName (user1, user2) {
console.log(user1);
console.log(user2);
};
getUserName('kimcoding'); // 'kimcoding' undefined
또한 매개변수는 함수 내부에서만 사용이 가능하다.
위에 과정들은 주로 함수 내부에서 console.log()
를 사용해 값을 콘솔창에 출력하는 방식으로 확인을 했다.
지금 배우는 return문은 두 수를 입력받아 합을 리턴하는 함수이다.
function add (x, y) {
return x + y; // 반환문
console.log('실행되지 않습니다');
}
return
문을 만나 값을 반환한 후 함수가 종료된다.function add (x, y) {
return x + y; // 반환문
}
console.log(add(3, 2)); // 5
return
문에 작성된 코드를 실행한 후 결과를 함수 외부로 리턴한다.function add (x, y) {
return x + y; // 반환문
}
let result = add(3, 2);
console.log(result); // 5
function add (x, y) {
return x + y; // 반환문
}
let result = add(3, 2) + add(5, 7);
console.log(result); // 17