🫧 정의호이스팅(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 📒 ..
📋 REST란먼저 REST란 'Representational State Transfer'의 약자로, 직역하자면 '표현적 상태 전송'입니다.REST는 웹이 갖추어야 할 이상적인 아키텍처(구조)를 의미하며, 해당 기준을 충족한 API를 'RESTful API'라고 합니다. REST 아키텍처가 되기 위한 'REST 설계 원칙'에는 다음과 같은 6가지 원칙이 존재합니다.클라이언트-서버 분리(Client-Server)무상태(Stateless)캐시 가능성(Cache)일관된 인터페이스(Uniform Interface)계층화된 시스템(Layered System)[선택 사항] 코드 온 디맨드(Code-on-Demand)아래에서 각 조건들을 자세히 살펴보겠습니다. 📋 REST 설계 원칙1) 클라이언트-서버 분리(Cli..
🌀 간단히 살펴보기자바스크립트로 알고리즘을 연습할 때 프로그래머스와 같이 입출력을 알아서 해주는 사이트를 이용해 왔다면백준이나 소프티어와 같이 직접 입출력을 해야 하는 사이트를 마주하는 경우 당황하게 될 것입니다. 따라서 오늘은 자바스크립트에서 입력을 받는 방법 중 'readline' 모듈을 활용하는 방법을 정리해보겠습니다. 기본적인 틀은 다음과 같습니다. (복사하여 사용하기)const readline = require('readline');const rl = readline.createInterface({ input: process.stdin, output: process.stdout});rl.on('line', (line) => { // 한 줄 입력 시 작업 코드}).on('close', ()..
🌵 문제 상황사용자가 특정 유저를 클릭하면 'https://es-cape-codeit.vercel.app/user/616'와 같이 마지막에 유저 아이디가 포함된 url로 이동합니다.해당 페이지는 유저의 프로필을 볼 수 있는 페이지입니다. 현재 유저 페이지의 url에서 유저 아이디를 가져와 if문으로 아이디의 유효성을 검사한 뒤, 유효하지 않다면 에러를 띄워 홈 화면으로 돌아가도록 구현하려고 하였습니다. 따라서 생각의 흐름과 동일하게 페이지로 이동했을 때 바로 아이디의 유효성을 검사하도록 if문을 가장 위에 두고,이후에 컴포넌트 렌더링에 필요한 코드들을 배치했습니다.import { useEffect } from 'react'import { useRouter } from 'next/router'export..