내부 슬롯과 내부 메서드는 자바스크립트 엔진이 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티와 의사 메서드다. ECMAScript 사양에 등장하는 이중 대괄호로 감싼 이름들이 내부 슬롯과 내부 메서드다.내부 슬롯과 내부 메서드는
🌼 11 원시 값과 객체의 비교 원시 타입: 원시 값은 변경 불가능한 값이다. 원시 값을 변수에 할당하면 변수에는 실제 값이 저장되며 원시 값을 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다.(Pass by value) 변수와 값은 분리해서 생각해야한다
🌼 13.1 Scope란? 스코프(유호범위)는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요한 개념이다. 변수는 자신이 선언된 위치에 의해 자신이 유호한 범위. 즉, 다른 코드가 변수 자신을 참조할 수 있는 범위가 결정된다. 다시 말해, 모든 식별자
🌼 37.1 Set Set 객체는 중복되지 않는 유일한 값들의 집합니다. Set 객체는 배열과 유사하지만 다음과 같은 차이가 있다. 이러한 Set 객체의 특성은 수학적 집합의 특성과 일치한다. Set은 수학적 집합을 구현하기 위한 자료구조다. 따라서 Set을 통
🌼33. Symbol? 심벌(Symbol)은 ES6에서 도입된 7번째 데이터 타입으로 변경 불가능한 원시 타입의 값이다. 심벌 값은 다른 값과 중복되지 않는 유일무이한 값이다. 따라서 주로 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용한다. 이
표준 빌트인 객체인 String 객체는 생성자 함수 객체다. new 연산자와 함께 호출하여 String 인스턴스를 생성할 수 있다. String 래퍼 객체는 배열과 마찬가지로 length 프로퍼티와 인덱스를 나타내는 숫자 형식의 문자열을 프로퍼티 키로, 각 문자를 프
표준 빌트인 객체인 Date는 날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이면서 생성자 함수다. 시간을 표기하는 방법으로는 UTC와 GMT가 있는데 둘은 초의 소수점 단위에서만 차이가 나기떄문에 일상에서는 혼용되어 사용된다. 기술적인 표기에서는 UTC가 사용된
🌼27. 배열 자바스크립트에서 배열은 여러 개의 값을 순차적으로 나열한 자료구조로 엄밀히 말에 자료구조에서 통용되는 일반적인 의미의 배열이 아니다. 자바스크립트의 배열은 일반적인 배열의 동작을 흉내 낸 특수한 객체다. 🌼27.2 자바스크립트 배열은 배열이 아니
Pseudo는 "가짜의", "모조의"라는 뜻을 가진 단어로 Pseudo class, element는 단어 뜻 그대로 실제로는 없는 클래스, 실제로는 없는 가상의 선택자를 의미한다. 가상 클래스는 실제로 존재하는 태그 중 특정 상태에 있는 요소를 선택할 때 사용하는
CSS 전처리기는 전처리기 자신만의 특별한 syntax를 가지고 CSS를 생성하도록 하는 프로그램이다. 대부분의 전처리기는 pure CSS에 존재하지 않는 특징을 갖고 있다. mixin, nesting selector, inheritance selector 등등. 이러
Medium의 Learning Flutter’s new navigation and routing system이라는 글을 일부 번역하여 정리한 글입니다. 상세한 구현 로직 및 사용방법은 원문 글에 자세히 나와있습니다. Navigator 2.0은 플러터 서비스가 브라우저
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다. 클래스 기반 객체지향 프로그래밍 언어의 특징인 몇 몇 키워드 등이 없어 자바스크립트는 객체지향 언어가 아니라고 오해하는 경우도 있지만 자바스크립트는 클래
🌼24.클로저 클로저는 난해하기로 유명한 자바스크립트의 개념 중 하나이지만 자바스크립트의 고유의 개념은 아니다. 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어에서 사용되는 중요한 특성이다. outerFunc 함수 내부에서 선언된 innerFunc는 oute
실행 컨텍스트(execution context)는 자바스크립트의 동작 원리를 담고 있는 핵심 개념이다. 실행 컨텍스트를 바르게 이해하면 자바스크립트가 스코프를 기반으로 식별자와 식별자에 바인딩된 값을 관리하는 방식과 호이스팅이 발생하는 이유, 클로저의 동작 방식,
레이아웃은 웹페이지에 text, image 등의 요소들을 위치시키거나 정렬시키는 방법으로 웹페이지의 시각적인 구조를 제공한다. 이러한 레이아웃은 큰 시각에서 웹페이지를 바라볼 때의 Page layout과 홈페이지를 구성하는 조각 요소들을 바라볼 때의 Component
html 요소들은 기본적으로 inline, block, inline-block 등 각자 고유의 디스플레이 속성을 갖고 있다. 하지만 이러한 속성은 불변적인 것은 아니다. display는 기본 속성과 상관없이 사용하고자하는 속성으로 지정 할 때 사용한다. 이러한 속성을
변수 선언과 값의 할당을 2개의 문으로 나누어 표현한 코드와 변수 선언과 값의 할당을 하나의 문으로 표현한 코드는 정확히 동일하게 동작한다.하지만 주의할 점은 변수 선언과 값의 할당의 실행 시점이 다르다는 것이다. 변수 선언은 소스코드가 순차적으로 실행되는 시점인 런타
사람은 계산과 기억을 모두 두뇌에서 하지만 컴퓨터는 연산과 기억을 수행하는 부품이 나눠져 있다. 컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용해 데이터를 기억한다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체이다. 메모리 셀 하나의 크기는 1바이트이며, 컴
프로그램이 메모리에 올라와 실행중인 상태를 프로세스라고 한다. 여러 프로세스를 돌리는 작업은 동시적, 병렬적 혹은 이 둘의 혼합으로 이루어 진다.동시성(Concurrency): 프로세스 하나가 여러개의 작업을 돌아가면서(Context switching) 작업을 조금씩
ES6에서 도입된 이터레이션 프로토콜은 순회 가능한 데이터 컬렉션을 만들기 위해 ECMAScript 사양에 정의하여 미리 약속한 규칙이다. ES6 이전 순회 가능한 데이터 컬렉션, 즉 배열, 문자열, 유사 배열 객체, DOM 컬렉션 등은 통일된 규약없이 각자 나름의 구