1 + 2라는 연산의 결과는 3이 된다.즉, 1 + 2는 결과로 3을 반환한다고 할 수 있다.이렇게 하나의 값을 반환하는 식을 expression, 표현식이라고 부르고 표현식 -> 값으로 계산하는 것을 evaluation, 평가라고 한다.1, 2는 operand, 피연
JS는 8가지 데이터 타입을 제공한다.(ES2020 기준)크게 Primitive/Reference Type으로 분류되는데,이 두가지로 분류되는 이유와 차이점은 나중에 살펴보고 우선 각 타입의 특징을 알아보자.위 코드는 JS가 아닌 Go로 작성된 코드이다.Go 뿐만 아니
산술 Arithmetic Operators, 논리 Logical, 할당 Assignment, 비교 Comparison 연산자 등이 존재한다. 연산자의 종류와 특징을 살펴보자. 1. Arithmetic Operators 1.1. Binary Operators Bin
0개 이상의 statement를 { }로 묶은 단위를 코드 블록 or 블록이라고 부르며 JS는 이를 하나의 실행 단위로 취급한다.단독으로 사용하면 아무런 의미가 없기 때문에 일반적으로 제어문, 함수 등에서 사용한다.statement의 끝에 ;을 붙이는 것이 일반적이지만
앞서 Primitive Types는 모두 살펴봤지만, Reference Type은 나중으로 미뤘었다. 이번에 다룰 object가 바로 Reference Type이다. object는 다른 모든 Primitive, Reference Types의 값들을 하나로 묶어서 커스
Primitive, Reference Types는 크게 3가지 차이가 있다.Primitive Type의 값은 Immutable, 불변이며, Reference Type은 Mutable, 가변이다.위 코드처럼 Primitive Type인 변수가 갖고 있는 값을 일상적으로
함수는 JS를 포함한 여타 프로그래밍 언어에서 핵심이 되는 개념이다.수학에서의 함수와 같이 특정한 값을 입력 받아, 그 값에 따라 결과가 출력 되는 일련의 과정을 뜻한다.아래와 같이 함수를 정의할 수 있다.function 뒤에 함수명을 입력하고, 그 뒤 괄호 안에 들어
코드의 가장 바깥 영역은 Global Scope, 블록 안의 영역은 Local Scope가 된다.블록 안으로 들어갈수록 하위 지역이 되며, 각 변수들은 자신의 지역과 하위 지역에서 유효하다.상위 지역의 변수와 같은 이름을 가진 변수가 있고, 해당 변수를 참조한다면 가장
지금까지는 object를 생성하기 위해 Object Literal인 {}, 그리고 필요에 따라 내부에 Key: Value 형태로 Property를 작성하는 형태였다.이번에는 Constructor를 통한 object 생성 방식을 알아보도록 하겠다.끝이다.이게 기존 방식이
ECMAScript 스펙에 등장하는 \[ ]로 감싼 내부 슬롯, 내부 메소드들은 이름 그대로 개발자가 직접 접근 및 호출할 수 없는 영역이다.그러나 일부 내부 슬롯, 메소드에 한해서 마치 getter를 이용해서 private property의 값을 받아오듯, 간접적으로
1. First-Class Object 다음과 같은 조건을 만족하는 object를 First-Class Object, 일급 객체라 부른다. 용어가 어려워 보이지만, 이는 JS 뿐만 아니라 다른 언어에서도 통용되는 개념이다. Anonymous Literal로 runti
앞서 함수의 종류는 2가지가 있다는 것을 알아보았다. 함수를 호출하면, [[Call]], [[Construct]] 내부적으로 두가지 내부 메소드 중 하나가 실행된다. new로 호출할 때 [[Construct]], 그냥 호출할 때 [[Call]]이 호출된다고 하였다.
아래 코드를 실행하면 JS 엔진은 foo 함수의 Scope에서 x를 찾는다. 그러나 let, var 등으로 선언된 변수가 아니기 때문에 존재하지 않을 것이고, Global Scope로 올라가 검색하게 될 것이다. 이렇듯 Keyword 없이 선언된 변수가 Global
JS의 객체는 크게 3가지로 분류된다. 표준 빌트인 객체 -ECMAScript 스펙에 정의된 객체. 환경에 관계없이 사용 가능. 호스트 객체 -ECMAScript에 정의되어 있지 않지만, 환경에 따라 추가적으로 제공하는 객체. 사용자 정의 객체 -사용자가 직접 정의
생성자 함수 내부에서 자기 자신을 참조할 때는 특수한 식별자인 this를 사용한다. 함수 선언문은 코드 런타임 이전에 호이스팅, 평가가 일어나기 때문에 순서에 상관없이 사용할 수 있다. this는 JS 엔진에 의해 암묵적으로 생성되는 식별자다. 함수 호출 시, ar
Execution Context, 실행 컨텍스트는 JS의 동작 원리를 담고 있는 핵심 개념. 1. Types of Source Code ECMAScript 스펙은 소스코드를 4가지 타입으로 구분. 4가지 타입의 소스코드는 실행 컨텍스트를 생성. Global Code