스코프(유효범위)는 식별자가 유효한 범위를 말한다모든 식별자(변수 이름, 함수 이름, 클래스 이름등) 는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수있는 유효 범위가 결정된다.예제 13-03식별자 결정 : 자바스크립트 엔진은 스코프를 통해 어떤 변수
14.1 변수의 생명주기변수의 생명주기선언에 의해서 생성되고, 할당에 의해서 값을 갖는다. → 이후 소멸메모리 공간이 확보된 시점부터 메모리 공간이 해제(자신이 등록된 스코프가 소멸될 때 가비지 컬렉터에 의해 메모리 해제)되어 가용 메모리 풀에 반환되는 시점까지변수는
변수 중복 선언 허용만약 동일한 변수가 선언되었다는 걸 모르고 변수를 중복 선언 하면서 값까지 할당 했다면 의도치 않게 먼저 선언된 변수의 값이 변경되는 부작용이 발생한다.함수 레벨 스코프var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역스코프로 인정한다.
함수란? 프로그래밍 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 함수 내부로 입력을 전달 받는 변수를 매개변수, 입력을 인수, 출력을 반환값이라고 한다. 또한 함수는 값이며, 여러개 존재할 수 있으므로 여러 함수를 구
내부 슬롯과 내부 메서드 ECMAScript의 객체의 실제 의미론은 내부 메서드라고 불리는 알고리즘을 통하여 작성되었다. ECMAScript 엔진의 각 객체는 런타임 동작을 정의하는 내부 메서드 집합과 연결된다. 내부 메서드는 ECMAScript 언어의 일부가 아니다.
Object 생성자 함수 new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 빈 객체를 생성한 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다. 생성자 함수란 new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수
일급 객체의 조건무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.변수나 자료구조(객체, 배열 등)에 저장할 수 있다.함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다.=> 자바스크립트의 함수는 4가지 조건을 모두 만족하므로 일급 객체
자바스크립트는 명령형, 함수형, 프로토타입 기반, 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어이다. 클래스 ES6에서 클래스가 도입되었다. 하지만 ES6의 클래스가 기존의 프로토타입 기반 객체지향 모델을 폐지하고 새로운 객체지향 모델을 제공하는 것
객체는 리터럴 표기법 또는 생성자 함수에 의해 생성되고 리터럴 표기법에 의해 생성된 객체도 생성자 함수와 연결되므로, 결국 모든 객체는 생성자 함수와 연결되어 있다. 프로토타입은 생성자 함수가 생성되는 시점에 더불어 생성된다. 프로토타입과 생성자 함수는 단독으로 존재할
프로토타입이 소유한 프로퍼티(메서드 포함)를 프로토타입 프로퍼티, 인스턴스가 소유한 프로퍼티를 인스턴스 프로퍼티라고 한다.프로토타입 프로퍼티와 같은 이름의 프로퍼티를 인스턴스에 추가하면 인스턴스 프로퍼티로 추가한다. 프로토타입의 프로퍼티는 변화가 없다.오버라이딩: 상위
instanceof 연산자 instanceof 연산자는 이항 연산자로서 좌변에 객체를 가리키는 식별자, 우변에 생성자 함수를 가리키는 식별자를 피연산자로 받는다. 만약 우변의 피연산자가 함수가 아닌 경우 TypeError가 발생한다. 우변의 생성자 함수의 protot