함수

임효진·2022년 10월 16일
0

함수의 사용 이유

  • 함수는 필요할 때 여러본 호출이 가능하다, 즉 재사용이 가능하다.동일한 작업을 반복적으로 수행해야 한다면 미리 정의된 함수를 재사용하는 것이 효율 적이다.
  • 유지보수의 편의성을 높이고 실수를 줄여 코드의 신뢰성을 높이는 효과를 기대할 수 있다.
  • 자바스크립트에서 함수는 일급객체. 즉 값처럼 자유롭게 사용할 수 있다.
//함수 표현식let add = function( x, y) {
	return x + y;
};

console.log(add(2, 5));
  • 함수 선언문으로 정의한 함수는 함수 선언문 이전에 호출할 수 있으며, 함수 표현식으로 정의한 함수는 함수 표현식 이전에

호출할 수 없다. 이유는 함수 선언문으로 정의한 함수와 함수 표현식으로 정의한 함수의 생성 시점이 다르기 때문이다.

함수 선언문으로 정의한 함수는 런타임 이전 자바스크립트 엔진에 의해 먼저 실행된다. 그리되면 JS엔진은 함수 이름과

동일한 이름의 식별자를 암묵적으로 함수 객체를 할당한다.

이 것을 함수 호이스팅이라고 한다. 그러나 변수 호이스팅과는 개념이 다르다

var의 경우 호이스팅에 의해 undefined로 평가되지만 함수 선언문으로 정의된 함수는 선언문 이전에 호출하면

화살표 함수

ES6에서 도입된 화살표 함수는 function 키워드를 대신하여 =>를 사용해 좀 더 간략한 방법으로 함수를 선언할 수 있다.⭐️화살표 함수는 항상 익명 함수로 정의한다.

const add = (x, y)=> x + y;
console.log(add(2, 5));//값 : 7
  • 화살표 함수는 내부 동작이 간략화 되어 있다. 생성자 함수로써 사용불가하고 기존 함수와 this 바인딩 방식도 다르다.

프로토타입의 property도 없으며 arguments 객체를 생성하지 않는다.

  • 화살표 함수는 함수 선언문으로 정의가 불가하고, 표현식으로 정의해야한다.
  • 자바스크립트는 동적 타입의 언어이기 때문에 매개변수의 타입을 사전에 지정할 수 없다.
  • 함수의 매개변수는 코드 이해의 방해되는 요소이므로 이상적인 매개변수 개수는 0개이며 적을수록 좋다

이상적인 함수는 한 가지 일만 해야 하며 가급적 작게 만들어야 한다.

최대 3개 이상 넘지 않을 것을 권하며 그 이상의 매개변수가 필요한 경우, 하나의 매개변수를 선언하고 객체를 인수로

전달하는 것이 유리하다.

  • 원시 타입 인수는 값 자체가 복사되어서 매개변수에 전달되기 때문에 함수 내부에서 값을 변경해도 원본은 훼손되지 않는다.

그러가 객체 타입 인수는 참조 값이 복사되어 매개변수로 전달되기 때문에 함수 몸체에서 객체를 변경할 경우 원본이 훼손된다.

즉시 실행 함수

함수 정의와 동시에 즉시 호출되는 함수로써 단 한 번만 호출되며 다시 호출은 불가하다.

(function () {
	let a = 3;
    let b = 5;
    return a + b;
 }());

//익명함수를 사용하는 것이 일반적.

재귀함수

재귀 함수는 반복되는 처리를 위해 사용된다.

//반복문 없이 10부터 0까지 출력하는 함수를 재귀를 써서 구현했을때.function countDown(n) {
	if( n < 0) return;
	console.log(n);
    countDown(n - 1);
    }

 countDown(10);

콜백함수

함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 칭한다.

  • 콜백 함수는 비동기 처리(이벤트 처리, Ajax 통신, 타이머 함수 등)에 활용되는 중요한 패턴이다.
profile
프론트 요정임

0개의 댓글

관련 채용 정보