봐도봐도 헷갈리는 함수들.
헷갈릴 때마다 빠르게 찾아서 볼 수 있게 정리해둠. 렛츠 기릿-

일반 함수

· 일반적인 함수. (= 함수 선언식)

  • 중복사용 가능.
  • 일반적인 함수.
function 함수명() {
  // 조건문
};

ex)
function sayHello(){
console.log('hello!');
}

sayHello(); // hello!

익명 함수

· 이름을 가지지 않는 함수.(= 함수 표현식)

  • 일회성 사용 가능.
  • 리터럴 방식으로 이용되어 변수에 저장.
 리터럴 방식 : 변수를 선엄함과 동시에 그 값을 지정해주는 표기법
 ex) 
 let abc = 'wonsun'; // 문자열 리터럴
 let num = 123 // 번호 리터럴
function() {
  // 조건문
};

· 사용시
const 변수명 = function(){
//조건문
}

ex)
const sayHello = function(){
console.log('hello!')
sayHello();//hello!

즉시실행함수

· 단 한번만 호출되는 함수. 다시 호출할 수 없다.

  • 익명 함수를 사용하는 것이 일반적.
(function () {
  // 조건문
})();

ex)

//익명
(function(){
  var a = 3;
  var b = 5;
  return a * b;
  }()
);

//기명
(function qwe() {
   var a = 3;
   var b = 5;
   return a * b;
}());

qwe();

· 즉실실행함수 전체를 괄호로 감싸는 이유

괄호를 사용하지 않으면, 함수를 선언한다고 생각하기 때문에 오류가 남.
= 함수 선언이 아닌 함수 표현임을 알려주기 위해 사용

· 즉실실행함수 뒤에 괄호로 붙이는 이유

함수가 정의되는 즉시 호출되어야 한다고 말해줌.
= 호출을 위해서 사용

화살표함수

· 보다 간결하게 사용할 수 있는 함수

  • 익명 함수만 사용 가능.
  • 콜백 함수로 사용 가능.
  • this 키워드는 window를 가리키기에 사용 자제
// 익명 함수
let a = function(){
return new Date()
};

// 화살표 함수
var a = () => {
return new Date()
};
ex)
let age = prompt('나이를 알려주세요.', 18);

let welcome =
      age < 18 ? () => console.log('안녕') : () => console.log('안녕하세요!');

welcome();
profile
Boo-yah

0개의 댓글