자바스크립트는 객체기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 "모든 것"이 객체이다. (원시값 제외!)원시 타입은 단 하나의 값만 가지지만 객체는 다양한 타입의 값을 가진다.원시 타입의 값, 즉 원시 값은 변경 불가능한 값이지만, 객체 타입의 값, 즉 객
변수에 접근할 수 있는 범위이다.모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효범위가 결정된다.즉, 스코프는 식별자가 유효한 범위를 말한다.자바스크립트 엔진이 식별자를 검색할 때 사용하
내부 슬롯과 내부 메서드내부 슬롯과 내부 메서드는 ECMAScript사양에서 사용하는 의사 프로퍼티와 의사 메서드이다. 이중 대괄호로 감싼 이름들이 내부 슬롯과 내부 메서드다.원칙적으로 이들은 자바스크립트 엔진의 내부 로직이므로 개발자가 직접적으로 접근하거나 호출할 수
객체리터럴객체는 객체 리터럴 이외에도 다양한 방법으로 생성할 수 있다.new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다.빈 객체를 생성한 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다.생성자 함수란 new 연산자와 함께
일급객체(First-class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.일급 객체의 조건무명의 리터럴로 생성할 수 있다.변수나 자료구조(객체, 배열 등)에 저장할 수 있다.함수의 매개변수에 전달할 수 있다.함수의 반환값
자바스크립트는 클래스 기반 객체지향 프로그래밍 언어보다 효율적이며 더 강력한 객체 지향 프로그래밍 능력을 지니고 있는 프로토타입 기반의 객체지향 프로그래밍 언어다.자바스크립트를 이루고 있는 거의 "모든 것"이 객체다.객체지향 프로그래밍은 실체를 인식하는 사고를 접목하려
자바스크립트 언어의 문법을 좀 더 엄격히 적용하여 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 오류를 발생시킨다.전역의 선두 또는 함수 몸체의 선두에 'use strict'를 추가한다. 함수 몸체의 선두
자바스크립트는 비동기 처리를 위한 하나의 패턴으로 콜백 함수를 사용한다. 하지만 이러한 콜백 패턴은 콜백 헬로 인해 가독성이 나쁘고 비동기 처리 중 발생한 에러의 처리에는 한계가 있다.비동기 함수 내부의 비동기로 동작하는 코드는 비동기 함수가 종료된 이후에 완료된다.
ES6에서 도입된 제너레이터는 코드 블록의 실행을 일시 중지했다가 필요한 시점에 재개할 수 있는 함수이다. 일반 함수와는 차이가 다음과 같다.제너레이터 함수는 함수 호출자에게 함수 실행의 제어권을 양도할 수 있다. 일반 함수를 호출하면 제어권을 함수에게 주기 때문에 코
실행 컨텍스트 실행 컨텍스트는 자바스크립트의 동작원리를 담고 있는 핵심 개념이다. 실행 컨텍스트를 이해하면 자바스크립트의 스코프, 호이스팅, 클로저, this, 그리고 태스트 큐와 함께 동작하는 이벤트 헨들러와 비동기 처리의 동작 방식을 이해할 수 있다. 아직 실행
this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다.this는 자바스크립트 엔진에 의해서 암묵적으로 생성, 어디서든 참조할 수 있다.
MDN에서 클로저 정의클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다.위를 보면 크게 와닿지가 않는다. 그럼 더 설명해보겠다.클로저를 공부하기 앞서 실행컨텍스트에 대한 지식이 있으면 이해하기가 훨씬 쉽다. innerFunc 함수는 outerFunc 함수 내부
클래스가 등장하기 전 > 자바스크립트는 [프로토타입] (https://velog.io/@pkb0711/%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85) 기반으로 객체지향 언어이고 강력한 객체 지향 프로그래밍 능력을 지니고 있다. 프로
배열은 여러 개의 값을 순차적으로 나열한 자료구조이다. 사용빈도가 매우 높고 가장 기본적인 자료구조다. JS에서는 배열을 다루기 위한 여러 유용한 메서드를 제공한다.배열이 가지고 있는 값을 요소라 한다.원시값, 객체, 함수, 배열 등 자바스크립트에서 값으로 인정하는 모
함수의 구분 > ES6 이전의 모든 함수는 일반 함수 및 생성자 함수로서 호출이 가능하다. 즉, ES6 이전의 모든 함수는 callable이면서 constructor이다. >> 내부 메서드 [[Call]] 과 [[Construct]]에서 살펴보았듯이 호출할 수 있는 함
표준 빌트인 객체인 Number 객체는 생성자 함수 객체다. 따라서 new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다.Number 생성자 함수의 인수로 숫자가 아닌 값을 전달하면 인수를 숫자로 강제로 변환해 객체를 생성한다.new 연산자 사용 하지
RegExp 정규 표현식이란? 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어다. (대부분의 프로그래밍 언어와 코드 에디터에 내장되어있다) 문자열을 대상으로 패턴 매칭 기능을 제공한다. > 패턴 매칭 기능이란 특정 패턴과 일치하는 문자열을 검색
이터러블을 공부해봅시다. !
ES6에서 도입된 스프레드 문법을 공부해보자!
Set과 Map 파해치자 !
브라우저의 렌더링 과정 정복하기 ! ! 면접 필수 질문 ! !
문서 객체 모델(The Document Object Model, 이하 DOM) 은 HTML, XML 문서의 프로그래밍 interface 이다.
이벤트란
호출 스케줄링 > 함수를 명시적으로 호출하면 함수가 즉시 실행되는데, 만약 함수를 명시적으로 호출하지않고 일정 시간이 경과한 후 호출되도록 함수호출을 예약하려면 타이머 함수를 사용하면 되고 이를 호출 스케 줄링이라고 한다. 타이머를 생성할 수 있는 함수 => setT
자바스크립트 엔진은 단 하나의 실행 컨텍스트 스택을 갖는다.즉, 자바스크립트 엔진은 한 번에 하나의 테스크만 실행할 수 있는 싱글 스레드방식으로 동작한다.싱글 스레드 방식은 한 번에 하나의 테스크만 실행할 수 있기에 시간이 걸리는 테스크를 실행하는 경우 블로킹(bloc
자바스크립트를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다.Ajax는 브라우저에서 제공하는 Web API인 XMLHttpRequest 객체를 기반으로 동작한다.XM
디스트럭처리(구조 분해 할당) 정복하기