15.1 var 키워드 선언 변수 문제점
es5 변수 선언 -> var 키워드
특징
1. 변수 중복 선언 허용: 정신없다고
2. 함수 레벨 스코프 : 적용안됨, 걍 다 전역 스코프됨
var 선언 ---> 함수 코드 블록 : 지역 스코프
함수 외부 : var a =20; / 함수 코드 블록 : var a =10; // var a는 전역변수, 함수내부에서 선언했지만..
3. 변수 호이스팅
var 키워드로 변수를 선언하면 변수 호이스팅일 일어나서
스코프의 선두로 끌어올려진다.
변수 선언문 이전 --> 참조 가능,
할당문 이전 --> 참조 undefined
15.2 let 키워드
es6에서 새로운 변수 선언 키워드 let, const 도입함
1. 변수 중복 선언 금지
sysntax 에러 발생함
2. 블록 레벨 스코프
var 키워드 ---> 함수의 코드 블록만 --> 지역 스코프 인정 --> 함수 레벨 스코프 따름
let 키워드 ---> 함수, if문, for문, while문, try-catch 문 --> 지역 스코프 인정 --> 블록 레벨 스코프 따름
3. 변수 호이스팅
let 은 변수 호이스팅이 발생하지 "않는 것 처럼" 동작
var 는 선언단계+초기화 단계 = undefined가 한번에 실행됨
let은 선언단계, 초기화 단계가 한번에 실행 안됨.
4. 전역 객체와 let
var로 선언한 전역 변수는 window(전역객체)의 프로퍼티다. window.foo로 접근이 가능하다.
let로 선언한 지역 변수는 window(전역객체)의 프로퍼티가 아니다. window.foo 처럼 접근 못한다.
15.3 const 키워드
1. 선언과 초기화
const 키워드는 상수를 선언하기 위해 사용한다.
선언+초기화를 동시에!!
2. 재할당 금지
재할당 안됨
3. 상수
const 선언한 변수 -->원시 값 할당 --> 변수 값 변경 못함
4. const 키워드와 객체
const 선언한 변수 -->객체 할당 --> 변수 값 변경 가능
15.4 var, let, const
변수 선언 : const
변수 선언 + 재할당 필요 : let
var는 쓰지말자
'자바스크립트-스터디[2021-10-05~완료]' 카테고리의 다른 글
17 생성자 함수에 의한 객체 생 (0) | 2021.10.31 |
---|---|
16 프로퍼티 어트리뷰트 (0) | 2021.10.30 |
13 스코프 (0) | 2021.10.19 |
[3주차] 14장 전역 변수의 문제점 (0) | 2021.10.19 |
13 렉시컬 스코프 (0) | 2021.10.16 |