JS기본상식 3.let,const,var(scope개념에서의 차이)

어니언·2023년 1월 10일
0
post-thumbnail

변수선언방식 에는 3가지 const, let, var 있다. 각각의 기능에 대해서 차이점을 아래사진으로 알 수 있다.

var키워드는 문제점이 3가지 존재한다.
1. 재선언이 가능하여 개발자가 의도하지 않은 값을 반환할 수 잇다.
2. 함수레벨 스코프로 인해 함수 외부에서 선언한 변수도 모두 적용될 수 있다.
3. 변수 선언문 이전에 변수를 참조하면 undefined를 반환한다.

이러한 문제를 해결하기 위해 앞선 게시물에서 기술했듯 ES6 버전에서 let과 const방식이 추가되었다.

위의 사진에보이듯 let의경우는 재선언은 불가하지만 재할당은가능하고, const의경우 재선언, 재할당 모두 불가능하다. 또한 let,const는 블록범위 함수이기 때문에 함수범위 내에서만 가능하다.

var키워드의 문제점중 2번의 경우가 일어나는 이유를 설명하려면 scope개념에대해서 알아야한다

scope란 변수참조의 유효범위를 말하는데 스코프는 전역스코프와 지역스코프 두가지로 나뉜다.

전역스코프는 코드 어디에서든지 참조할 수 있다.

지역스코프는 함수 코드블록이 만든 스코프로 함수 자신과 하위 하수에서만 참조할 수 있다.

var의 경우는 전역스코프이기 때문에 함수 안에 있다하더라도 외부에 같은 변수명이 있다면 영향을 받아 개발자가 의도치 않은 값을 반환할 수 있다.

하지만 let과 const는 지역스코프를따르며 이러한 문제점을 해결하여 의도치 않은 오류를 많이 줄여준다.

profile
안녕하세요.

0개의 댓글