var, let, const 키워드

wangjh789·2022년 8월 28일
0

javascript

목록 보기
4/12
var name = 'Max';

if(name === 'Max'){
	var age = 20;
  	console.log(age);
}
console.log(age);

다음과 같은 상황에서 age는 2번 출력된다.
var 을 사용해 변수를 생성하면 마치 전역변수인 것 처럼 사용할 수 있기 때문에 코드가 길어지고 복잡해지면 예상치 못한 에러가 발생할 수 있다.

let, const 는 블럭 스코프로 변수가 생성되지만 var의 경우 함수, 전역 스코프로 밖에 생성되지 않는다.
(var - if 블럭의 변수를 전역변수로 사용한다. / let,const - 중괄호 내의 블럭 스코프를 사용한다.)

console.log(name);

var name = 'Max';

이 경우 에러가 아닌 undefined 가 출력된다. (let, const는 에러 발생)

브라우저의 js엔진은 전체 스크립트를 확인해서 함수를 찾은 뒤 자동으로 로드하고 등록해서 실제 사용하는 코드 아래 함수를 작성하도록 한다.
변수 또한 마찬가지로 작동한다.

var name;

console.log(name);

name = 'Max'

var, let, const 모두 호이스팅 당한다.(스코프 내에서 맨 위로 끌어 올려진다.)
그러나 var의 경우 선언과 동시에 undefined로 초기화가 되어 에러가 발생하지 않는다.

'user strict'; 를 추가하면 염격모드를 활성화할 수 있다.

profile
기록

0개의 댓글