예약어 : 이미 쓰임이 정해져 있는 키워드를 의미한다. 이 예약어는 변수명으로 사용할 수 없고
변수의 예약어는 var, let가 있고, 상수의 예약어로는 const가 있다.
변수의 var는 hoisting (호이스팅) 이라는 이슈가 있어서 쓰이지 않는다.. (호이스팅은 밑에..!)
그러므로 let(변수) 과 const(상수)를 사용한다.
선언 방법
예약어[let, const] 변수명[개발자 임의] = [데이터 값]
예약어와 변수명 사이는 띄어쓰기로 구분한다.
변수 : let
재선언 X , 재할당 O
let number //선언
number = 1 //할당
console.log(number) //출력
//let number // 불가
number = 10 //재할당
console.log(number)
상수 : const
재선언X , 재할당X
선언과 동시에 값을 할당해야 한다. (대입 연산자를 활용 )
const num1 = 1
console.log(num1)
호이스팅 (Hoisting)
hoisting ( 호이스팅)은 자바스크립트 문법에서 변수나 함수를 선언 이전에 사용할 수 있다는 뜻,
변수나 함수를 선언하기 전에 사용할 수 있었기 때문에 끌어올려지는 것처럼 보였을 뿐 실제로 끌어올려지는 것은 아니다.
실행 컨텍스트가 생성될 때 ( 코드들이 실행되기 위한 환경이 생성될 때) 식별자 정보를 수집하는데, 이때 변수들을 먼저 담기 때문에 할당 전에 사용할 수 있게 된다.(메모리에 변수가 할당) 그래서 var 변수를 선언 전에 사용하게 되면 에러를 띄우는 것이 아닌 undefined 을 출력해준다.
let, const는 호이스팅이 되지 않느냐? - 아니다. 그렇지만.....
실행 컨텍스트가 생성될 때 변수들은 다 정보를 담기 때문에 호이스팅이 되는 것은 맞으나, 초기화 단계를 거쳐 var 와 달리 선언은 되어 있지만 변수에 값을 담기 위한 메모리에 공간이 확보되어 있지는 않기 때문에 할당 이전에 미리 사용할 수 없게 된 것이다.
'🟨 JavaScript 🟨' 카테고리의 다른 글
JavaScript - 배열 기초 (0) | 2022.10.31 |
---|---|
JavaScript - 조건문 if-else if (0) | 2022.10.31 |
JavaScript - 논리연산자 (0) | 2022.10.31 |
JavaScript - 조건문 if문 와 반복문 for문 (0) | 2022.10.30 |
JavaScript - 연산자 기본과 데이터 타입 (0) | 2022.10.30 |
댓글