완로그
article thumbnail

⏳ 2023. 5. 15. - 2023. 5.21.

 

호이스팅(Hoisting)

// 호이스팅(Hoisting)
hello1(); // "hello1"
// hello2(); // ❌ error

// 함수 선언문(Declaration)
function hello1() {
  console.log("hello1");
}

// 함수 표현식(Expression)
const hello2 = function () {
  console.log("hello2");
};

호이스팅은 함수 선언부가 유효범위 최상단으로 끌어올려지는 현상을 말한다.

선언문만 호이스팅된다.


즉시 실행 함수

// 즉시 실행 함수(IIFE, Immediately-Invoked Function Expression)

// (F)()
(() => {
  console.log("Hello");
})();

// (F)()
(function () {
  console.log("Hello");
})();

// (F())
(function () {
  console.log("Hello");
})();

// !F()
!function () {
  console.log("Hello");
}();

// +F()
+function () {
  console.log("Hello");
}();

// 매개변수와 인수
((a, b) => console.log(a + b))(1, 2);

두 번째 괄호 안에 인수를 넣어 사용할 수 있다.

즉시 실행 함수는 난독화에 유리하다고 한다.

그런 것 같다.. 잘 안 쓸 것 같아.. 어지러움.. 🤢


콜백(Callback)

함수가 실행될 때, 인수로 들어가는 또 하나의 함수를 콜백 함수라고 한다.

// 콜백(Callback)

const a = (callback) => {
  console.log("A");
  callback();
};
const b = () => console.log("B");

a(b);

this

일반 함수의 this는 호출 위치에서 정의

 

화살표 함수의 this는 자신이 선언된 함수(렉시컬) 범위에서 정의

profile

완로그

@완석이

프론트엔드 개발자를 꿈꾸는 완석이의 일기장입니다.