ES6 스터디 정리 : let & const

Llux lux·2022년 4월 8일
0

ES6 스터디

목록 보기
1/21

let & const

1.0 let

var 를 대체하는 대채하는 변수 선언문으로 var 에 비해 더욱 더 엄격한 규칙을 적용한다.

var 의 Hoisting 이 일어나지 않는다.
호이스팅이란 자바스크립트 문이 실행되기 전에 var 변수를 상단으로 끌어올리는 것을 말한다.
그로 인해 var 는 변수 선언 위치 제약을 받지 않으며 Block 을 벗어나도라도 정상적으로 인식된다.

console.log(name);
let name = "hahaha";
//name이 존재하지 않는다는 오류가 발생
console.log(name);
var name = "hahaha";
//아무값도 할당된 것이 아닌 undefinded가 찍히게 된다.

let 은 호이스팅을 허용하지 않으므로 오류를 더욱 엄격하게 발생시켜 예상치 못한 케이스를 줄일수 있다

1.1 const

let 과 함께 선언에 쓰이지만 변수가 아닌 상수에 사용된다.
readonly 와는 약간의 차이가 있다.

const name = "gildong hong";
name = "chulsoo";
//name is read-only 라는 오류가 발생한다.

위와 같이 변경되는 값이 아닌 상수 값을 선언하는데 주로 사용된다.

const userObj = {
	name : "gildong Hong"
};
userObj.name = "chulsoo";
//오류가 발생하지 않고 프로퍼티 변경이 가능하다

위와 같이 변수의 주소값이 바뀌지 않는 경우 내부 프로퍼티 변경이 가능하다.

1.2 Block scope

const 와 let 은 block 을 엄격하게 적용한다.

if(true){
	const firstName = "gildong";
  	let lastName = "Hong";
}
console.log(firstName);
console.log(lastName);
//firstName, lastName 모두 not defined 에러가 발생한다.

반면 var 의 경우 오류가 발생하지 않는다. 바로 hoisting 때문이다.

if(true){
	var firstName = "gildong";
}
console.log(firstName);
//gildong 이 console 에 표시된다.

let 과 const 를 쓰자! 이제 var 는 안녕

profile
하하하

0개의 댓글