프로그래밍 언어는 기억하고 싶은 값을 메모리에 저장하고, 저장된 값을 읽어 들여 재사용하기 위해 변수라는 메커니즘을 제공.변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말함. 즉, 값의 위치를 가리키는 상징
값은 식이 평가되어 생성된 결과. 모든 값은 데이터 타입을 가지며, 메모리에 2진수(비트)의 나열로 저장됨. 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있음.아래 예제의 sum 변수가 기억하는 메모리 공간에 저장된 것은 10 + 20이 아니라 값 30임
데이터 타입은 값의 종류를 말함. 자바스크립트(ES6)는 7개의 데이터 타입을 제공. 크게 원시 타입과 객체 타입으로 분류.C나 자바의 경우, 정수와 실수를 구분해 int, long, float, double 등과 같은 다양한 숫자 타입 제공함. 자바스크립트는 독특하게
연산자operator는 하나 이상의 표현식을 대상으로 하나의 값을 만듦.이 때 연산의 대상을 피연산자operand라 함.피연산자는 값으로 평가될 수 있는 표현식이어야 함. 그리고 피연산자와 연산자의 조합으로 이뤄진 연산자 표현식도 값으로 평가될 수 있는 표현식임.이항
제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용. 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있음.0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 함. 자바스크립트는 블록문을 하나의 실행
자바스크립트의 모든 값은 타입이 있다. 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라 함.그리고 개발자의 의도와는 상관 없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 자동 변환되는 것을 암묵적 타입 변환 또는 타입 강제
자바스크립트는 객체 기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 “모든 것”이 객체임. 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체. 원시 타입은 단 하나의 값만 나타내지만 객체 타입은 다양한 타입의 값(원시 값 또는 다른
자바스크립트가 제공하는 7가지 데이터 타입(숫자, 문자, 불리언, null, undefined, 심벌, 객체 타입)은 크게 원시 타입(primitive type)과 객체 타입(object/reference type)으로 구분할 수 있음. 원시 타입과 객체 타입은 크게
자바스크립트에서 가장 중요한 핵심 개념. 스코프, 실행 컨텍스트, 클로저, 생성자 함수에 의한 객체 생성, 메서드, this, 프로토타입, 모듈화 등이 모두 함수와 깊은 관련이 있음.수학의 함수는 입력(input)을 받아 출력(output)을 내보내는 일련의 과정을 정
실행 컨텍스트 execution context 는 자바스크립트의 동작 원리를 담고 있는 핵심 개념. 이를 바르게 이해하면 자바스크립트가 스코프를 기반으로 식별자와 식별자에 바인딩 된 값(식별자 바인딩)을 관리하는 방식과 호이스팅이 발생하는 이유, 클로저의 동작 방식,
모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정됨. 스코프는 식별자가 유효한 범위를 말함.자바스크립트 엔진이 이름이 같은 두 개의 변수 중 어떤 변수를 참조해야 할 것인지를
변수는 선언에 의해 생성되고 할당을 통해 값을 갖게 되고 언젠가 소멸함. 생명 주기 life cycle 가 있는데, 만일 변수에 생명 주기가 없다면 한 번 선언된 변수는 프로그램을 종료하지 않는 한 영원히 메모리 공간을 점유하게 됨. 변수는 자신이 선언된 위치에서 생성
var 키워드로 선언한 변수는 중복 선언 가능 함. 만약 동일한 이름의 변수가 이미 선언되어 있는 것을 모르고 변수를 중복 선언하면서 값까지 할당했다면 의도치 않게 먼저 선언된 변수 값이 변경되는 부작용 발생.var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을
내부 슬롯 internal slot과 내부 메서드 internal method은 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티 pseudo property와 의사 메서드 pseudo method임. ECMAScri
객체 리터럴을 사용하여 객체를 생성하는 방식과 생성자 함수를 사용하여 객체를 생성하는 방식 각각의 장단점을 살펴보자.new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환함. 생성 후 프로퍼티 또는 메서드를 추가할 수 있음.생성자 함수 con