변수 접근 규칙에 따른 유효 범위
아래사진을 통해 보다 정확한 예시를 확인 가능하다
위 사진처럼 if문 중괄호, for문 중괄호, 마지막 console.log를 감싸고 있는 중괄호를 블록스코프 라고 부른다
위 사진처럼 function키워드가 등장하는 함수 선언식 및 함수 표현식은 함수 스코프를 만들어 낸다
다만 유의해야 할 점이 있다면 화살표 함수는 블록 스코프로 취급된다
즉 함수 스코프가 아니다
위 사진을 보면 첫번째는 화살표 함수로서 블록 스코프로 취급된다
함수 스코프는 함수의 실행부터 종료까지이고,
var 선언은 함수 스코프의 최상단에 선언된다
선언 키워드 없는 선언은 최고 스코프에 선언된다
함수 내에서 선언 키워드 없는 선언은,
함수의 실행 전까지 선언되지 않은 것으로 취급한다
보통 코드를 작성할 때 블록은 들여쓰기가 적용되고,
그 구분이 시각적으로 분명하다
따라서 많은 사람들은 블록 스코프를 기준으로 코드를 작성하고,
생각하지만 그러나 var는 이 규칙을 무시하므로,
코드를 작성하는 사람이 블록 스코프/함수 스코프에 대한
이해가 없으면 코드가 다소 혼란스럽기에 var키워드 보다는 let으로 변수 선언을 하는 것을 권장한다
값이 변하지 않는 상수를 정의할때 쓰는 const 키워드
변하지 않는 값, 곧 상수(constant)를 정의할 때 이용한다
const는 값의 재할당이 불가능하며 의도치 않는 값의 변경을 막을 수 있다