모던 자바스크립트 3

[모던 자바스크립트 deep dive] 20장 strict mode

strict mode function foo() { x = 10; } foo(); console.log(x); // 10 \전역 스코프에도 x 변수의 선언이 존재하지 않기 때문에 ReferenceError를 발생할 것같지만 자바스크립트 엔진은 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성한다. 이때 전역 객체의 x 프로퍼티는 마치 전역 변수처럼 사용 가능 위의 현상을 암묵적 전역이라고 한다. 잠재적인 오류를 발생시키기 어려운 개발 환경을 만들고 그 환경에서 개발하는 것이 해결책 이를 지원하기 위해 ES5부터 strict mode(엄격 모드)가 추가되었다. strict mode는 자바스크립트 언어의 문법을 더 엄격히 적용하여 오류 발생 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 ..

[모던 자바스크립트 deep dive] 16장 프로퍼티와 어트리뷰트

내부 슬롯과 내부 메서드 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티와 의사 메서드다. ECMAScript 사양에 등장하는 이중 대괄호([[...])로 감싼 이름들이 내부 슬롯과 내부 메서드다. const o = {}; //내부 슬롯은 자바스크립트 엔진의 내부 로직이므로 직접 접근 x o.[[Prototype]] // -> Uncaught SyntaxError:unexpected token '[' // 단, 일부 내부 슬롯과 내부 메서드에 한하여 간접적으로 접근할 수 있는 수단 제공 o.__proto__ //-> object.prototype 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 자바스크립트 엔진은 프로퍼티를 생..

[모던 자바스크립트 deep dive] 10장 객체 리터럴

객체 자바스크립트는 객체(object)기반의 프로그래밍 언어 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체 원시 타입은 단 하나의 값만 나타내지만 객체 타입은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조 원시 타입의 값, 즉 원시 값은 변경한 불가능한 값이지만 객체 타입의 값, 즉 객체는 변경 가능한 값 객체는 0개 이상의 프로퍼티로 구성된 집합 프로퍼티는 키와값으로 구성 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 함수도 프로퍼티 값으로 사용할 수 있다. 프로퍼티 값이 함수 일 경우, 일반 함수와 구분하기 위해 메서드라 부른다. 객체: 프로퍼티랑 메서드로 구성된 집합체 프로퍼티: 객체의 상태를 나타내는 값(d..

728x90