strict mode란? function foo() { x = 10; } foo(); console.log(x); // ? foo함수 내에서 선언하지 않은 x 변수에 값을 할당했을때, 변수 x를 찾아야 x에 값을 할당할 수 있기때문에 자바스크립트 엔진은 x 변수가 어디에서 선언되었는지 스코프 체인을 통해 검색하기 시작한다. 먼저 foo함수 내에서 검색하는데 함수내에는 x 변수의 선언이 없으므로 검색에 실패할 것이고, 상위 스코프에서 x변수의 선언을 검색할 것이다. 어디에도 x 변수의 선언이 없으면 ReferenceError를 발생시킬 것 같지만 자바스크립트 엔진은 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성한다. 이때 전역 객체의 x 프로퍼티는 마치 전역 변수처럼 사용할 수 있다. 이러한 현상을 암묵..
객체 자바스크립트는 객체기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 "모든 것"이 객체다. 원시 값을 제외한 나머지 값( 함수, 배열, 정규 표현식 등 )은 모두 객체다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. 👆🏻 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 따라서, 함수도 프로퍼티 값으로 사용할 수 있다. 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메서드라 부른다. 객체는 프로퍼티와 메서드로 구성된 집합체다. 프로퍼티 : 객체의 상태를 나타내는 값 메서드 : 프로퍼티를 참조하고 조작할 수 있는 동작 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임을 객체지향 프로그래밍이라 한다. 객체 리터럴에 의한 ..