호이스팅(Hoisting)이란? 자바스크립트 엔진(Interpreter)이 코드를 실행하기 전, 변수, 함수, 클래스의 선언문을 위로 끌어 올리는 것을 말한다. 변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮긴다. 함수 호이스팅 함수의 호이스팅은 함수의 선언문 전에 호출이 가능하게 해준다. 따라서 함수의 선언문은 선언 이전에도 호출이 가능하다. print(); function print() { console.log('Good Morning🌤️'); } 변수와 클래스 호이스팅 변수(let, const)와 클래스는 선언만 호이스팅이 되고, 초기화는 호이스팅이 되지 않는다. 따라서 아래와 같이 초기화 전에 변수에 접근하면 컴파일(빌드) 에러가 발생한다. error "Cannot access (..
Nullish coalescing operator (??) Nullish: null 또는 undefined Nullish coalescing operator는 논리 연산자로, ??를 사용한다. ??의 왼쪽 피연산자가 null 또는 undefined인 경우 오른쪽 피연산자를 반환한다. 반면, ??의 왼쪽 피연산자가 null과 undefined이 아닌 경우 왼쪽 피연산자를 반환한다. 아래 예시 코드를 보면 이해가 쉽다. 1️⃣ 왼쪽 피연산자가 null 또는 undefined인 경우 const apple = null ?? '🍎'; console.log(apple); // expected output: "🍎" 오른쪽 피연산자 🍎을 반환한다. 2️⃣ 왼쪽 피연산자가 null과 undefined이 아닌 경우 con..
Optional Chaining 연산자 (?.) ES11 (ECMAScript 2020) 객체의 Property에 접근하거나 함수를 호출했을 때 undefined 또는 null인 경우 에러를 던지는 대신, undefined를 반환한다. 즉, nullish값 (null 또는 undefined) 으로 인해 에러가 발생하는 것을 간단한 표현으로 처리할 수 있다. 왜 Optional Chaining을 사용할까? 예를 들어 adventurer 객체 안에 중첩된(nested) cat 객체가 있는 아래의 코드를 보자. nullish 값을 체크하면서(null 또는 undefined인 경우 에러가 발생하기 때문) adventurer 객체에 중첩된 'cat 객체의 name'을 가져오려면 어떻게 할 수 있을까? const ..
파일 모듈화 모듈(module)을 사용하면 JavaScript 파일별로 각각 캡슐화가 가능하다. 두 개의 JavaScript 파일을 만들어서 모듈화를 해보자. 우선, 아래와 같이 HTML 파일에 counter.js 파일과 main.js 파일을 태그로 연결해보자. Index.html counter.js 파일에는 변수 count가 있고, 함수 increase와 getCount가 있다. 변수 count는 다른 파일에서 접근하지 못하게 하고, increase와 getCount는 사용할 수 있게하려면 export를 앞에 붙여주면 다른 파일에서 import가 가능하다. (export default는 모듈에서 딱 하나만 export할 때 사용할 수 있다.) counter.js let count = 0; export ..
보호되어 있는 글입니다.
- Total
- Today
- Yesterday
- Component
- zustand
- git
- 함수
- 브라우저
- React Query
- react
- 파이썬
- leetcode
- error
- 리액트
- DOM
- Context API
- Browser
- 그래프
- CSS
- DB
- github
- JavaScript
- 자료구조
- 알고리즘
- useState
- Python
- mdn
- BOJ
- 자바스크립트
- state
- 에러
- 데이터베이스
- 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |