🫧 정의호이스팅(Hoisting)이란, 변수나 함수의 선언이 실제로 작성된 위치와는 상관없이 스코프의 최상단으로 끌어올려진 것처럼 동작하는 자바스크립트의 특징을 말합니다.참고로 hoist란 '감아올리기'라는 의미를 가진 단어입니다.호이스팅 현상에서 중요한 개념은 바로 let 또는 const로 선언한 변수는변수의 선언만 호이스팅 되고, 변수의 할당은 호이스팅 되지 않는다는 것입니다. 아래에서 자세히 살펴보겠습니다. 🫧 특징변수의 선언만 호이스팅 되고, 변수의 할당은 호이스팅 되지 않는다는 특징에 대해 예시 코드와 함께 설명하겠습니다. 예를 들어, 아래와 같은 코드가 있을 때console.log(myName);let myName = "Emma";두 번째 줄에서는 두 가지 일이 일어납니다.myName이라는..
프론트엔드 면접 질문 리스트에 빠지지 않는 중요도 ⭐️x5개인 질문이지만, 내용을 읽어봐도 항상 헷갈리는 개념입니다. 아래에서 차근차근 살펴보겠습니다. 🪴 정의클로저(Closure)란, 외부 함수에 선언된 변수에 접근할 수 있는 내부 함수를 의미합니다.이 내부 함수는 자신이 선언될 때의 환경(스코프)을 기억하고 있어서, 외부 함수가 종료된 이후에도 외부 변수에 접근할 수 있는 특징이 있습니다.이러한 특징을 가진 클로저는 함수가 변수를 기억하는 기능을 하기 때문에 데이터를 은닉하거나 상태를 유지해야 하는 경우에 사용됩니다.보통 '외부 변수에 접근할 수 있는 내부 함수'를 클로저라고 하며, 좀 더 넓은 의미로 이러한 함수와 외부 변수에 접근할 수 있는 현상 전체를 클로저라고 부르기도 합니다. 🪴 예시 코..
배열을 선언하는 방법은 아래와 같습니다.예를 들어, 100개의 요소를 가진 배열을 생성해 보겠습니다.// 방법 1) 배열 생성자 활용let arr1 = new Array(100); // undefined로 초기화됨let arr1_2 = new Array(0, 0, 0, 0, 0, ...);// 방법 2) 빈 배열을 직접 선언let arr2 = [0, 0, 0, 0, 0, ...];배열의 크기가 작다면 [대괄호] 안에 값을 작성하여 초기화해 줄 수도 있지만, 직접 초기화하는 것 이외의 방법을 살펴보겠습니다. 📒 for문 활용하기가장 기본적인 방법으로 아래에서 소개할 메서드가 생각나지 않을 때 활용할 수 있는 방법입니다.let array = new Array(100);for(let i = 0; i 📒 ..
🍀 사용 목적디바운싱과 쓰로틀링은 공통적으로사용자가 특정 이벤트를 연속적으로 발생시킬 때, 이를 제어하여 서버나 브라우저의 부하를 줄이는 목적을 가지고 있습니다.그러나 두 방법의 동작 방식과 사용되는 상황에서의 차이가 존재합니다.아래에서 자세히 살펴보겠습니다. 🍀 디바운싱(debouncing)디바운싱이란 빈번하게 발생하는 이벤트를 특정한 시점 이후에 한 번만 실행시키는 최적화 방법입니다.연이어 함수가 호출된다면 마지막(또는 처음)에 호출된 함수만 실행됩니다.따라서 마지막(또는 처음)에 실행되는 함수를 제외한 나머지 이벤트들은 무시합니다.디바운싱의 목적은 이벤트가 호출되는 빈도를 줄여 성능을 최적화시키는 것입니다. 사용자가 어떤 버튼을 연속적으로 클릭할 때 버튼을 클릭하는 모든 이벤트를 발생시키는 것이..