함수
함수는 자바스크립트에서 가장 중요한 핵심 개념이다.
입력을 받아 출력을 내보내는 일련의 과정을 정의한 것
프로그래밍 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것
매개변수 : 함수 내부로 입력을 전달받는 변수
인수 : 입력
출력 : 반환값
function add(x, y){
/*
함수이름: add
x,y : 매개변수
return : 반환값
*/
return console.log(x + y);
};
//여기까지의 과정을 함수를 정의한 것
//함수 호출
//2, 5: 인수
add(2,5); //7
함수도 객체이다.
함수를 표현하는 방식들
1.함수 선언식
함수 선언식은 자바스크립트 엔진이 선언문을 표현식으로 변환해 객체를 생성해서 실행한다.
2.함수 표현식
3.화살표 함수(ES6)
함수 호이스팅
console.log(helloPrn); //hello
console.log(helloPrn2); //undefined
function helloPrn(){
console.log("hello!!!");
}
var helloPrn2 = function(){
console.log("hello!!!")
}
console.log(helloPrn2); //hello
모든 선언문은 코드가 한 줄씩 순차적으로 실행되는 시점인 런타임 이전에 자바스크립트 엔진에 의해 먼저 실행
그래서 함수 선언문은 암묵적으로 생성된 식별자는 함수 객체로 초기화되고
표현식의 값의 할당을 런타임과정에서 이뤄지므로 처음에는 undefined가 선언된다.
매개변수
함수를 실행하기 위해 필요한 값을 함수 외부에서 함수 내부로 전달할 필요가 있는 경우, 매개변수를 통해 인수로 전달한다.
매개변수도 함수 몸체 내부에서 변수와 동일하게 취급된다 그래서 함수 선언시 처음에는 undefined으로 선언된다.
매개변수는 인수의 개수가 일치하는지 체크하지 않는다 인수가 부족하면 할당되지 않은 매개변수의 값은 undefined이다.
function add(a, b){
return a + b;
};
console.log(add(2)); //NaN
초과된 매개변수는 버려지는 것이 아닌 arguments 객체의 프로퍼티에 보관된다.
function add2(a, b){
return a + b;
};
console.log(add2(1,2,3)); //3
ES6에서 도입된 매개변수 기본값을 사용하면 함수 내에서 초기화를 간소화할 수 있다.
function newAdd(a = 0, b = 0, c = 0){
return a + b + c;
}
console.log(newAdd(1)); //1
반환형은 return으로 보내준다. 이 때 반환값이 없으면 undefinded이다.
function func(){
return;
}
console.log(func()); //undefined
'WEB > JS' 카테고리의 다른 글
[JS] scope(유효범위) (0) | 2023.11.25 |
---|---|
[JS] recursive // callback (2) | 2023.11.25 |
[JS] Object & method (1) | 2023.11.20 |
[JS] 단축 평가 (0) | 2023.11.19 |
[JS] 타입 변환 (0) | 2023.11.19 |