반응형
함수
함수 - 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것
함수는 왜 사용 하는가 ?
-> 코드의 재사용 / 유지보수의 편의성 / 코드의 가독성
함수 정의 방식
함수 정의 방식 | 예시 |
---|---|
함수 선언문 | function add(x, y){ return x+y; } |
함수 표현식 | var add =function(x, y){ return x+y; } |
Function 생성자 함수 | var add = New function('x', 'y', 'return x + y') |
화살표 함수(ES6) | var add = (x, y) => x + y; |
함수 표현식 - 함수 리터럴로 생성한 함수 객체를 변수에 할당하는 방식
함수 표현식은 '표현식인 문'
함수 호이스팅 - 변수로 할당된 함수 표현식은 변수 호이스팅이 발생하여 할당 전에 참조할 시 undefined로 초기화 되고, 함수 선언문을 통해 생성된 식별자는 함수 객체로 초기화된다.
X)
반환문 - 반환문은 함수의 실행을 중단하고 함수 몸체를 빠져 나간다.
반환문은 return 키워드 뒤에 오는 표현식을 평가해 반환한다
참조에 의한 전달과 외부 상태의 변경 - 함수를 호출하고 인자를 전달 할 때 원시 값은 값에 의한 전달, 객체는 참조에 의한 전달 방식으로 동작
-> 함수 내부에서 객체값을 변경하면 원본 객체 값도 변경이 된다.
즉시 실행 함수 - 함수 정의와 동시에 즉시 호출되는 함수(한번만 호출 가능)
(function () {
console.log(1, 2);
})();
재귀 함수 - 자기 자신의 호출을 수행하는 함수
function countdown(n) {
for (var i = n; i >= 1; i--) console.log(i);
}
countdown(10); // 10 9 8 7 6 5 4 3 2 1
// 반복문 없이 재귀 함수를 사용해 구현 가능
function countdown(n) {
if (n === 0) return;
console.log(n);
return countdown(n - 1);
} // 10 9 8 7 6 5 4 3 2 1
재귀 함수는 자신을 무한 호출 하므로 탈출 조건을 반드시 만들어야 한다.
중첩 함수 - 함수 내부에 정의된 함수(중첩함수는 외부 함수 내부에서만 호출 가능)
function outer(n) {
// 중첩함수 내부에서는 외부함수의 변수를 참조할 수 있다.
function inner() {
return n ** 2;
}
if (typeof n === "number") {
n = inner();
return n;
} else {
return "숫자 타입이 아닙니다";
}
}
outer(10); // 100
outer("야호"); // '숫자 타입이 아닙니다'
콜백 함수 - 함수의 매개변수를 통해 다른 내부로 전달되는 함수
function repeat(n, f) {
for (var i = 0; i < n; i++) {
f(i);
}
}
var logAll = function (i) {
console.log(i);
};
반응형
'TIL' 카테고리의 다른 글
git rebase (0) | 2022.02.19 |
---|---|
첫 팀프로젝트 후기 (0) | 2022.02.16 |
AWS (0) | 2022.02.13 |
라우팅 (0) | 2022.02.13 |
자바스크립트 간단 요약 ver2 (0) | 2022.01.29 |