함수는 흔히 재사용성, 유지변수의 용이, 가독성을 유지하기 위해서 사용한다. 자바 스크립트의 함수선언은 C++과 pyhon과 다르다.
function 함수명 (인자){
코드
return 반환값
}
함수명 전에 자료형이나 def를 선언하는 언어들과 달리 함수의 영어표기인 function을 사용하여 함수를 선언한다. 다음 예시를 보며 설명하면
function print(){
for(var i=0; i<10; i++){
console.log("Hello World!");
}
}
console.log(print());
console.log(print());
console.log(print());
console.log(print());
console.log(print());
매개변수가 없는 함수 print를 사용해서 Hello World를 50번 출력하는 코드이다. 이 코드를 함수를 사용하지 않고 표현하면 다음과 같다.
for(var i=0; i<10; i++){
console.log("Hello World!");
}
for(var i=0; i<10; i++){
console.log("Hello World!");
}
for(var i=0; i<10; i++){
console.log("Hello World!");
}
for(var i=0; i<10; i++){
console.log("Hello World!");
}
for(var i=0; i<10; i++){
console.log("Hello World!");
}
이렇게 코드를 작성하면 가독성이 떨어질 뿐더러 같은 코드를 다시 사용하는데 번거로움이 생길 수 있다.
아래 코드는 두 정수의 합을 출력하는 간단한 코드이다.
function add(int1,int2){
return int1+int2;
}
console.log(add(1,2));//3
자바 스크립트에서의 함수 매개변수는 자료형을 쓰지 않고 변수를 입력해야 한다. 리턴은 다른 언어와 같이 return 리턴값; 으로 정의한다. 리턴은 여러개가 동시에 실행될 수 없다.
아래 두 코드는 같은 기능을 실행한다.
add=function (int1,int2){
return int1+int2;
}
console.log(add(1,2));//3
function add(int1,int2){
return int1+int2;
}
console.log(add(1,2));//3
이처럼
함수이름=function(매개변수)와 function 함수이름(매개변수)는 같은 기능을 수행한다. 또한 아래 코드와 같이 정의만 해두고 이름을 설정하지 않은 익명함수도 만들 수 있다.
(function(int1,int2){
return int1+int2;
})();
console.log(add(1,2));//3