프로그래밍에서 함수는 일정한 동작을 수행하는 코드를 의미한다.
함수를 미리 만들어두고 원할 때 실행하여 정해진 동작을 수행하게 할 수 있다.
함수의 종류에는 '화살표 함수(Arrow Function)'와 'Function 함수'가 있다.
함수를 만들 때 화살표 기호를 사용하여 만든 함수를 '화살표 함수'라고 한다.
( ) => { }
함수를 만들 때 소괄호 앞에 function을 쓰고 만든 함수를 'function 함수'라고 한다.
function a() {};
변수와 마찬가지로 함수를 만드는 행위도 선언한다(declare)라고 표현한다.
function a() {};
const b = function() {};
const c = () => {};
함수를 상수에 대입하는 대신 function 키워드 뒤에 함수 이름을 넣어주는 방식을 '함수 선언문'이라고 한다.
반대로, 함수 b와 같이 상수나 변수에 대입하는 방식을 '함수 표현식'이라고 한다.
function a() {};
a();
>>> (없음)
함수 a를 선언한 후, a 뒤에 ()를 붙이면 함수가 실행한다.
지금은 함수 내부에 아무것도 선언하지 않아 실행결과가 없다.
console.log 나 parseInt 같은 명령 뒤에 ()를 붙여 사용해본 적이있다.
그 이유는 console.log 나 parseInt도 함수이기 때문이다.
중괄호안에 실행할 코드를 넣어주면 된다.
function a() {
console.log('Hello');
console.log('Function');
}
a();
<<< Hello
<<< Function
function() {
return 'Hello'
console.log('Hi');
}
Hi는 찍히지 않고, return 값인 Hello만 반환했다.
반환 값은 문자열도, 숫자도, Null 그리고 Undefined도 가능하다.
심지어 함수자체도 반환할 수 있다.
'return 결과값;' 을 써주지 않으면 return Undefined;가 자동으로 반환된다.
function a() {
return Undefined
}
function a() {};
두 함수 모두 결과 값은 Undefined로 동일하다.
function a() {
console.log('a');
}
function a() {
console.log('a');
return Undefined
}
두 함수 모두 결과 값은 a로 동일하다.
function a() {
return 10
}
console.log( a() );
>>> 10
함수 a의 호출 결과를 console.log에서 사용해보았다.
a()의 반환값이 10이기 때문에 console.log( a() )는 console.log(10)과 동일하다.
따라서 콘솔에 10을 출력한다.
function a() {
console.log('Hello');
return;
console.log('Return');
}
a();
>>> Hello
여기서는 Hello 만 콘솔에 출력된다.
return 문이 실행되면 그 아래 코드는 아예 실행되지 않는다.