JS BASIC | 함수 (function)

chaen·2023년 7월 6일

JS Grammar

목록 보기
9/28
post-thumbnail

❓ 함수란?

함수(function)란 하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록을 의미한다.
이러한 함수는 필요할 때마다 호출하여 해당 작업을 반복해서 수행할 수 있다.

함수를 사용하는 행위: 호출한다 (call)
함수를 사용하는 이유: 반복없이 재사용하기 용이하다

function a() {} //함수 선언문 (function declaration statement)
const b = function() {}; //함수 표현식 (function expression)
const c = () => {}; //화살표 함수 (arrow function)

2. return

함수 a를 호출할 때(a();) 결괏값은 undefined이다. (기본값)
함수를 호출하면 항상 결괏값이 나오는데, 이 값을 반환값(return value)라고 한다.

function a() {
  return 10;
}
< undefined //반환값 (기본)
        
a();
< 10        //반환값 

명시적으로 return 문을 사용하지 않는다면 항상 함수 실행문 끝에 return undefined가 있다고 생각하면 된다.

function a() {}
// 두 코드는 동일함
function a() {
  return undefined;
}

반환값도 값이므로 다른 식이나 문에 넣거나, 상수나 변수에 대입할 수 있다.
또한 return문이 발동할 경우 함수의 실행이 그 즉시 종료된다.

function a() {
  console.log('Hello');
  return;
  console.log('Return');
  }

const b = a();
console.log(b);

Hello
function a() {
  if (false) {
    return;
  }
  console.log(‘실행됩니다.);
}
a();

> 실행됩니다.

💡 화살표 함수에서, 화살표와 return이 함께 쓰일 경우 중괄호와 return의 생략이 가능하다.

const f = (x,y) => { return x * y; }
const f = (x,y) => x * y; // 두 문장은 같다.

3. 매개변수와 인수

function a(parameter) {
  console.log(parameter);
}
a('argument');

> argument

함수를 선언할 때 사용한 변수: 매개변수 (parameter)
함수를 호출할 때 넣은 값: 인수(argument)
함수는 여러개의 매개변수와 인수를 가질 수 있으며, 두 개의 갯수가 일치하지 않아도 된다.

매개변수 > 인수 : 대응되지 않는 매개변수에는 undefined가 대입
매개변수 < 인수 : 앞에서부터 순서대로 대입, 나머지는 생략

💡 화살표 함수에서는 인수를 사용할 수 없다.
오직 function으로 선언한 함수만 가능!


4. IIFE (Immediately Invoked Fuction Expression)

  • 즉시 실행되는 함수 표현식
  • 표현식 내부 변수는 외부에서 접근 불가 (지역 변수만)
  • 변수 할당 시 저장 x, 함수 결과만 저장됨
  • 함수 리터럴을 소괄호로 감싼 상태
(function init () { //문
})();

IIFE의 필요성

  • 불필요한 변수 및 함수 생성 X
  • Scope 충돌 x
  • 한 번만 호출하는 코드의 경우 사용한다.


참고: https://velog.io/@uoah/JS-%ED%95%A8%EC%88%98-function

0개의 댓글