자바스크립트 함수

규갓 God Gyu·2024년 11월 29일

면접질문

목록 보기
19/142
  1. 일급 객체
    함수는 값처럼 취급될 수 있고, 변수에 할당하거나, 다른 함수의 인자로 전달하거나, 함수의 반환값으로 사용할 수 있음

일급객체란
1. 변수나 데이터 구조에 할당될 수 있다
2. 함수의 인자로 전달될 수 있다
3. 함수의 반환값으로 사용될 수 있다

  1. 익명함수, 함수표현식
    이름 없는 함수를 정의할 수 있음
    주로 함수 표현식에서 사용되며, 필요에 따라 함수에 이름을 지정하지 않아도 됨
const add = function(a,b){
	return a+b;
}
console.log(add(2,3));//5
  1. 호이스팅
    함수 선언식을 통해 선언한 함수는 코드 실행 전 호이스팅 되어 함수 선언 이전에 호출할 수 있음
    대신 함수 표현식은 변수에 할당된 후 사용가능

  2. 클로저
    함수가 자신이 선언된 환경(스코프)을 기억하고, 해당 환경에 접근할 수 있는 기능

function outer(){
	const outerVar = 'I am outer!';
    
    return function inner(){
    	return outerVar; // 외부 변수에 접근 가능
    };
}
const innerFunction = outer();
console.log(innerFunction()); // 'I am outer!'
  1. 고차 함수
    일급 객체여서 다른 함수를 인자로 받거나 반환하는 함수를 정의할 수 있음. 함수형 프로그래밍 패턴을 가능하게 함
function multiplyBy(factor){
	return function(num){
    	return num * factor;
    };
}
const double = multiplyBy(2);
console.log(double(5)); // 10
  1. 화살표 함수
    더 간결한 문법, this 바인딩에서 기존 함수와 다른 동작함. 선언된 위치의 this 값을 유지함
    일반 함수와 달리 별도로 this를 바인딩할 필요가 없음
const obj = {
	value:42,
    method: function(){
    	setTimeout(() => {
        	console.log(this.value); // 42(Arrow 함수는 obj의 this를 유지)
        }, 1000);
    }
};
obj.method();
profile
웹 개발자 되고 시포용

0개의 댓글