⏳ 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는 자신이 선언된 함수(렉시컬) 범위에서 정의
'카카오테크캠퍼스 > 필수과정' 카테고리의 다른 글
[카카오테크캠퍼스 6주차] JavaScript 마스터: 표준 내장 객체 (0) | 2023.05.17 |
---|---|
[카카오테크캠퍼스 6주차] JavaScript 마스터: 클래스 (0) | 2023.05.15 |
[카카오테크캠퍼스 5주차] JavaScript 마스터: for of, for in (0) | 2023.05.11 |
[카카오테크캠퍼스 5주차] JavaScript 마스터: 선택적 체이닝 (0) | 2023.05.10 |
[카카오테크캠퍼스 5주차] JavaScript 마스터: 구조 분해 할당 (0) | 2023.05.10 |