모든 식별자(변수이름, 함수이름, 클래스이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정되는 것. (식별자가 유효한 범위)
var 키워드로 선언한 변수와 let 또는 const키워드로 선언한 변수의 스코프도 다르게 동작함
식별자 결정 : 자바스크립트 엔진이 이름이 같은 두개의 변수중 어떤 변수를 참조해야 할것인지를 결정하는 것
식별자는 어떤 값을 구별할 수 있어야 하므로 유일해야함
식별자인 변수 이름은 중복될수 없고, 하나의 값은 유일한 식별자에 연결되어야함 → 스코프 개념 도입으로 스코프가 다르면 같은이름 사용이 가능해짐.
var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언이 허용됨. → 의도치 않게 변수값이 재할당되어 변경되는 부작용을 발생시킴
let 이나 const키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용하지 않음