[JavaScript] 3가지 변수선언 차이

OwlCJ·2021년 5월 20일
0

Javascript

목록 보기
2/6

JavaScript에서의 변수 선언

자바스크립트에서는 var, let, const의 3가지 키워드로 변수 선언이 가능하다.
ES6에서 let, const 키워드가 도입되기 전에는 var 키워드가 자바스크립트에서 변수를 선언할 수 있는 유일한 키워드였다.

선언의 형태에서는 var 형과 let 형은 공통된 선언 특징을 가진다.

var x;  // 선언 당시 초기화를 하지않으면 "undefined"값을 가짐
var sum = 0;  // 선언과 동시에 초기화
var x, sum; // 한 번에 여러 개의 변수를 함께 선언할 수 있음

var x=0, sum=0;  // 선언과 초기화를 동시에 설정가능
language = "JavaScript"  // 범위를 따로 지정하지 않으면 전역 변수로 취급

var 자리에 let을 치환해도 동일한 작동을 한다.

간단한 3 키워드의 차이점

var : 변수 중복선언 허용(에러 발생 X), 함수 레벨 스코프, 변수 Hoisting
let : 변수 중복선언 금지, 블록 레벨 스코프, 변수 Hoisting이 발생하지 않는 것처럼 동작
const : 선언과 동시에 초기화 필요, 재할당 금지, 상수로써 작동, 변수명을 대문자로 해주는 관례,
변수 Hoisting이 발생하지 않는 것처럼 동작

* ES6 에서 도입된 let, const, class 는 변수 Hoisting이 발생하지 않는 것 처럼 동작함

변수 Hoisting

자바스크립트에서는 함수 안에 있는 모든 변수를 함수 맨 꼭대기로 끌어올려 정의한 후 동작한다.

console.log(score); // undefined
var score;

변수 선언문보다 변수를 참조하는 코드가 앞에 있지만 참조 에러가 발생하지 않고 undefined가 출력한다. 변수 Hoisting이 발생하면 마치 아래의 코드처럼 작동한다.

var score;
console.log(score);
profile
ios 개발자를 목표로 성장중입니다 🧐

0개의 댓글