ES6 이전까지 자바스크립트의 함수는 별다른 구분 없이 다양한 목적으로 사용되었다. 자바스크립트의 함수는 일반적인 함수로서 호출할 수도 있고,new 연산자와 함께 호출하여 인스턴스를 생성할 수 있는 생성자 함수로서 호출할 수도 있으며,객체에 바인딩되어 메서드로서 호출할
객체 리터럴 방식으로 생성한 객체의 경우 메서드 내부에서 메서드 자신이 속한 객체를 가리키는 식별자를 재귀적으로 참조할 수 있다,getDiameter 메서드 내에서 메서드 자신이 속한 객체를 가리키는 식별자 circle을 참조하고 있다. 이 참조표현식이 평가되는 시점은
자바스크립트는 객체 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 모든것이 객체이다.객체 지향 프로그래밍이란 프로그램을 명령어 또는 함수 목록으로 보는 전통적인 명령형 프로그래밍의 절차지향적 관점을 벗어나서 여러 개의 독립적 단위, 즉 객체의 집합으로 프로
ECMAScript 사양에 등잘하는 이중 대괄호(\[…])로 감싼 이름들이 내부 슬롯과 내부 메서드 이다.내부 슬롯과 내부 메서드는 ECMAScript 사양에 정의된 대로 구현되어 자바스크립트 엔진에서 실제로 동작하지만 개발자가 직접 접근할 수 있도록 외부로 공개된 객
자바스크립트는 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어이다. ( 개발자도구를 통해 콘솔을 찍어보면 한줄씩 변환하는 작업을 하는게 그 예시이다. ) 대부분의 모던 자바스크립트 엔진 ( 크롬의 v8, 파이어폭스의 spiderMonkey, 사파리의 jav
Number 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 \[NumberData] 내부 슬롯에 0을 할당한 Number 래퍼 객체를 생성한다.크롬 브라우저의 개발자 도구에서 실행해보면 \[PrimitiveValue]라는 접근할수 없는 프로퍼티가 보
다른 값과 절대 중복되지 않는 유일무이한 값심벌 값도 문자열, 숫자, 불리언과 같이 객체처럼 접근하면 암묵적으로 래퍼 객체를 생성한다심벌 값은 암묵적으로 문자열이나 숫자 타입으로 변환되지 않는다.단, 불리언 타입으로는 암묵적인 타입 변환이 가능하다.Symbol 함수는
파싱은 프로그래밍 언어 문법에 맞게 작성된 텍스트 문서를 읽어 들여 실행하기 위해 텍스트 문서의 문자열을 토큰으로 분해하고, 토큰에 문법적 의미와 구조를 반영하여 트리 구조의 자료구조인 파스트리를 생성하는 일련의 과정을 말한다. 일반적으로 파싱이 완료된 이후에는 파스
브라우저는 처리해야 할 특정 사건이 발생하면 이를 감지하여 이벤트를 발생 시킨다. 예를 들어, 클릭 ,키보드 입력, 마우스 이동 등이 일어나면 브라우저는 이를 감지하여 특정한 타입의 이벤트를 발생시킨다.프로그램의 흐름을 이벤트 중심으로 제어하는 프로그래밍 방식을 이벤트
함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 생성된다. 이때 생성된 함수 실행 컨텍스트는 실행 컨텍스트 스택(콜스택) 이라고 부른다.함수의 실행 순서는 실행 컨텍스트 스택으로 관리한다.자바스크립트 엔진은 단 하나의 실행 컨텍스트 스택을 갖는다.위 예제의