스코프는 변수 그리고 함수와 깊은 관련이 있다.우리는 이미 스코프를 경험했다.함수의 매개변수는 함수 몸체 내부에서만 참조할 수 있다.함수 몸체 외부에서는 참조할 수 없다고 했다.매개변수를 참조할 수 있는 유효범위, 매개변수의 스코프가 함수 몸체 내부로 한정되기 때문이다
전역 변수의 무분별한 사용은 위험하다.전역 변수를 반드시 사용해야 할 이유를 찾지 못한다면 지역 변수를 사용해야 한다.지역 변수 x는 foo 함수가 호출되기 이전까지는 생성되지 않는다.foo 함수를 호출하지 않으면 함수 내부의 변수 선언문이 실행되지 않기 때문이다.fo
var 키워드로 선언한 변수의 문제점 변수 중복 선언 허용 만약 동일한 이름의 변수가 이미 선언되어 있는 것을 모르고 변수를 중복 선언하면서 값까지 할당했다면 의도치 않게 먼저 선언된 변수값이 변경되는 부작용이 발생한다. 함수 레벨 스코프 함수 레벨 스코프는 전
내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 사용한다.자바스크립트 엔진에서 실제로 동작하지만 개발자가 직접 접근할 수 있도록 외부로 공개된 객체의 프로퍼티는 아니다.원칙적으로 직접적으로 접근하거나 호출할 수 있는 방법을 제공하지 않는다.
new 키워드를 사용하여 생성하는 함수를 의미반복된 코드를 사용하는 나쁜 사례개선된 패턴을 사용하는 좋은 사례new 연산자와 함께 호출하면 해당 함수는 생성자 함수로 동작한다.new 연산자와 함께 생성자 함수를 호출하지 않으면 생성자 함수가 아니라 일반 함수로 동작한다
무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.변수나 자료구조(객체, 배열 등)에 저장할 수 있다.함수의 매개변수에 전달할 수 있다.함수의 반환값으로 사용할 수 있다.이처럼 arguments, caller, length, name, prototype
다음의 결괏값을 예측해보라전역 스코프에 x 변수의 선언이 존재하지 않기 때문에 ReferenceError를 발생시킬 것 같지만 자바스크립트 엔진은 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성한다.이러한 현상을 암묵적 전역이라 한다.개발자의 의도와는 상관없이 발생한