자바스크립트 엔진의 특징으로, 코드가 순차적으로 실행되는 런타임 이전에 먼저 변수선언이 실행되어 ReferenceError 가 일어나지 않고, undefined 의 값이 나오는 현상을 hoisting 이라고 한다.(변수 뿐만이 아니라, 함수, 클래스 등 모든 식별자들은
세줄요약1\. 값을 저장할 때 확보해야 되는 메모리 공간의 크기를 결정하기 위해서.2\. 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해서.3\. 메모리에서 읽어 들인 2진수의 해석 방법을 결정하기 위해서.예제 코드 1위의 코드가 실행되면
Optional chaining 이란? ES2020에 나온 최신 문법이며, 기존의 && 연산자를 쓰면서 길어졌던 코드를 더욱 간결하게 사용하는 연산자이다. 가장 처음에 사용했던 방식은 삼항 연산자 방식을 사용했다. 만약 데이터가 동기적으로 받아와야하는 경우라면, 데이터가 오기 전에 페이지를 렌더링을 해주고 있기 때문에(async ... await 와 같...
구조분해할당이란? ES6 버전에서 나온 구조분해할당이란 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JS 표현식이다. 배열 구조 분해 예시 예제 코드 1 예제 코드 2 예제 코드 3 객체 및 배열 리터럴 표현식을 사용하면 쉽게 데이터 뭉치를 만들 수 있다. 즉 a[0], b[0] 과 같이 쓸 필요없이 직접 설정한 변...
closure 란? Closure 는 두 개의 함수로 만들어진 환경 으로 이루어진 특별한 객체의 한 종류이다. 여기서 환경 이란, 클로저가 생성될 때 그 범위 에 있던 여러 로컬 변수들이 포함된 context를 말한다. closure 가 생성되기 위한 조건들 내부 함
자바스크립트는 싱글 스레드 언어다. 즉 한 번에 한 가지 일 밖에 처리를 할 수 없다는 뜻이다. 만약 함수가 하나 실행되고 있는 경우에는 다른 일을 처리할 수 없고 끝날때 까지 기다려야한다. 그렇게 된다면 웹 브라우저에서 그 함수를 처리하느라 다른 작업들을 할 수 없게
일급 객체 > 컴퓨터 프로그래밍 언어 디자인에서, 일급 객체(영어: first-class object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급
자바스크립트는 객체지향 언어인가? 자바스크립트는 프로토타입 기반 객체지향 프로그래밍(OOP)를 지원하는 언어다. C++, Java와 같은 클래스 기반 객체지향 프로그래밍 언어의 특징인 클래스와, 상속, 캡슐화위한 public, private, protected 등이
this 키워드 객체지향 프로그래밍에서 객체는 상태(state)를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 자료구조이다. 이러한 동작이나 상태를 참조하고 변경할 수 있어야 하는데, 이때 메서드가 자신이 속한 객체의 프로퍼티를 참조하려
실행 컨텍스트 실행 컨텍스트는 소스코드를 실행하는데 필요한 환경을 제공하고 코드의 실행 결과를 관리하는 영역이다. 실제로 호이스팅, 클로저, 비동기처리 방식 등의 동작방식이 실행 컨텍스트에 따라 영향을 끼친다. 그만큼 실행 컨텍스트의 개념은 자바스크립트의 동작원리의