
프로그래밍 언어는 기억하고 싶은 값을 메모리에 저장하고, 저장된 값을 읽어 들여 재사용하기 위해 변수라는 매커니즘을 제공한다. 변수의 정의를 내려보면 다음과 같다. 변수 (variable)는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식

값 (value)은 식이 평가되어 생성된 결과를 말한다.모든 값은 데이터 타입을 가진다.: 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(Notation).자바스크립트 엔진은 런타임에 리터럴을 평가해 값을 생성한다.: 값으로 평가될 수 있

데이터 타입은 값의 종류를 말한다.자바스크립트는 원시 타입(Primitive type)과 객체 타입(Object/Reference type)으로 구성된 총 8개의 타입을 가진다.텍스트 데이터를 나타내는 데 사용한다. 주로 ('') 작은따옴표로 감싼다.따옴표로 감싸지 않

연산자 (Operator)은 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 지수 연산 등을 수행해 하나의 값을 만든다.연산의 대상을 피연산자(Operand)라 하며 값으로 평가될 수 있는 표현식이어야 한다.수학적 계산으러 새로운 숫자 값을 만든다. 계산이

제어문 (Control Flow Statement)은 조건에 따라 코드 블록을 실행하거나 반복할 때 사용한다.

자바스크립트의 모든 값을 타입이 있다.개발자가 자신의 의도대로 다른 타입으로 변환하는 것을 명시적 타입 변환 (Explicit Coercion) 또는 타입 캐스팅 (Type Casting) 이라고 한다. 개발자의 의도와 상관없이 표현식을 평가하는 도중 자바스크립트

자바스크립트는 프로토타입 기반 객체(object)지향 프로그래밍 언어이다.자바스크립트는 원시 값을 제외한 모든 값이 객체이다.원시 타입은 하나의 값만을 나타내지만 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 자료구조임.원시 타입의 값은 변경 불가능한 값이지만

자바스크립트의 데이터 타입은 크게 원시 타입(Primitive Type)과 객체 타입(Object Type)로 구분할 수 있다.원시 값은 변경 불가능한 값이지만 객체는 변경 가능한 값이다.원시 값을 변수에 할당하면 변수에는 실제 값이 저장되지만 객체를 변수에 할당하면

수학의 함수란 "입력(Input)"을 받아 "출력(Output)"을 내보내는 일련의 과정이다.프로그래밍의 함수란 일련의 과정을 문(Statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다.함수는 "매개 변수(Parameter)", "인수(

스코프(유효 범위)는 식별자가 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위이다.스코프를 통해 변수 이름의 충돌을 방지하여 같은 이름의 변수를 사용할 수 있게 한다.전역(Glboal), 지역(Local)로 나뉜다.전역이란 코드의 가장 바깥 영

전역 변수의 무분별한 사용은 위험하므로 반드시 전역 변수를 사용해야 할 이유가 없다면 지역 변수를 사용해야 한다.변수는 선언에 의해 생성되고 할당을 통해 값을 갖는다. 그리고 언젠가 소멸한다. 즉, 변수는 생명 주기가 있다. 지역 변수는 함수가 호출되면 생성되고 함수가

var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정한다. 즉, 함수 외부에서 var 키워드로 선언한 변수는 코드 블록 내에서 선언해도 전역 변수가 된다.변수 선언문 이전에 변수를 참조하는 것은 프로그램 흐름상 맞지 않고 가독성을 떨어뜨리고 오

내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 포로퍼티와 의사 메서드이다. 이중 대괄호(\[...])로 감싼 이름들이 내부 슬롯과 내부 메서드다.원칙적으로 내부 슬롯과 내부 메서드에 직접 접근하거

new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 빈 객체를 생성한 이후 프로퍼티 혹은 메서드를 추가하여 객체를 완성할 수 있다.생성자 함수(Constructor)란 new 연산자와 함께 객체(인스턴스)를 생성하는 함수이다.Obje

다음 조건을 만족하는 객체를 일급 객체라 한다.무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.변수나 자료구조에 저장할 수 있다.함수의 매개변수에 전달할 수 있다.변수의 반환값으로 사용할 수 있다.함수가 일급 객체라는 것은 함수가 객체와 동일하게 사용할

자바스크립트는 프로토타입 기반의 객체지향 프로그래밍 언어다.객체지향 프로그래밍은 명령형 프로그래밍의 절차지향적 관점에서 벗어나 독립적 단위인 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임이다.속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조

자바스크립트 엔진은 foo 함수의 스코프에서 x 변수의 선언을 검색한다. foo 함수의 스코프에는 x 변수의 선언이 없으므로 검색을 실패한다. 그 후, foo 함수 컨텍스트의 상위 스코프(전역)에서 x 변수의 선언을 검색한다. 하지만 상위 스코프에서도 x 변수의 선언이

this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수다.메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다.생성자 함수 내부에서 프로퍼티나 메서드를 추가하기 위해 자신이 생성할 인

실행 컨텍스트(Execution Context)는 자바스크립트의 동작 원리를 담고 있는 핵심 개념이다.실행 컨텍스트를 바르게 이해하면 자바스크립트가 스코프 기반으로 식별자와 식별자 바인딩을 관리하는 방식과 호이스팅이 발생하는 이유, 클로저 동작 방식, 태스크 큐와 함께
A closure is the combination of a funtion and the lexical environment within which that function was declared. 클로저는 난해하기로 유명한 자바스크립트의 개념 중 하나다. 클로저는 함수를 일급 객체 취급하는 함수형 프로그래밍 언어에서 사용되는 중요한 특성이다. oute...