TIL-4 혼공자바스크립트 용어정리

khundi·2022년 5월 19일
0
post-thumbnail

- 선언적 함수

일반적으로 함수 선언할 때 사용.

function test() {
	alert("이것은 일반 함수입니다.");
}

- 익명 함수

함수에 이름을 따로 넣지 않고 사용.
보통 콜백함수에 주로 사용.

$('test_call').click(function() {    // id = 'test_call' 인 개체(object)에 click 이벤트가 발생되었을 때 호출.

alert("이것은 익명 함수입니다.");

});

- 인라인 함수

인라인함수는 함수가 하는 기능을 변수에 담는 것을 뜻합니다.

var function_test = function() {
	alert("인라인 함수입니다.")
};

책에 인라인 함수에 대해 설명이 없어 다른 블로그의 내용을 읽어보니


내부적인 동작에 있어서 약간의 다른 차이는 있는데, 일반 함수의 경우는 브라우저 자바 엔진이 javascript 를 코드 전체를 파싱(Parsing)하는 단계에 생성되는 반면, 인라인 함수는 변수에 대입되는 방식이므로 런타임(Runtime) 시에 생성됩니다.

이렇게 함수가 생성되는 시점으로 본다면 인라인 함수와 익명 함수는 동일합니다.

익명 함수 또한 인라인 함수와 동일하게 런타임 시에 함수가 생성됩니다.

하지만 인라인 함수와 익명 함수는 차이점이 있는데, 이는 재사용성의 여부입니다.

인라인 함수는 특정 변수에 할당 되므로 이 변수를 이용하여 다른 코드에서 함수를 재사용할 수 있습니다. 반면 익명함수는 특정 코드 내에 한정되어 정의되기 때문에 다른 곳에서 재사용할 수 없습니다. 익명 함수를 할당받은 변수도 없고, 함수명도 없기 때문에 다른 곳에서 접근할 수 있는 방법이 없지요.

다시 한 번 정리하자면 재사용 가능 여부로 함수를 구분해 볼 때, 일반 함수와 인라인 함수는 재사용이 가능하며(함수 변수와 함수명을 통해 접근), 익명 함수는 재사용이 불가능합니다.

그리고 추가로 덧붙이자면 보통 개발 편의성 때문에 익명 함수와 인라인 함수를 종종 사용하는 경우가 많은데, 큰 차이는 아니더라도 실제 익명함수와 인라인 함수는 성능상의 저하가 있을 수 있습니다. 왜냐하면 일반 함수의 경우 파싱 단계에서 함수를 생성하고, 재사용하지만, 익명 함수와 인라인 함수는 매번 사용될 때마다 런타임 시에 생성되기 때문입니다.

출처: https://ooz.co.kr/195 [이러쿵저러쿵]


재사용성의 차이가 있고 또 선언적 함수와 다른 익명 함수는 읽는 방법이 달라 차이가 없다고 할 수 없다.

- 가변 매개변수 함수

매개변수의 개수가 고정적이지 않은 함수.
자바스크립트에서 이러한 함수를 구현할 때는 나머지 매개변수(rest parameter)라는 문법을 사용함.

function sample(...items){
	console.log(items)
}

sample(1, 2)        // [1, 2]
sample(1, 2, 3, 4)  // [1, 2, 3, 4]

매개변수(parameter)에 넣은 값들이 배열로 들어옴.

profile
안녕하세요. 웹 프론트엔드 개발자 전성훈입니다.

0개의 댓글