JS 공부 2일차

위범석·2022년 7월 2일
0

변수 let, const ,var
var는 한번 선언된 변수를 다시 선언 할 수 있다.

var name = "kevin";
console.log(name); // kevin

var name = "mike";
console.log(name); // Jane

하지만 let 같은 경우는

let name = "kevin";
console.log(name); //kevin

let name = "mike";
console.log(name); // error! << var와 let의 차이점 명확히 기억할것

var는 선언하기 전에 사용할 수 있다.

호이스팅

JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var 로 선언한 변수의 경우 호이스팅 시 undefined 로 변수를 초기화합니다.

var name; // 호이스팅 (hoisting)
console.log(name) // undefined
name = "Mike"

undefined라고 나오는 이유는 선언은 호이스팅 되지만 할당은 호이스팅이 되지 않기 때문이다.

Temporal Dead Zone

console.log(name) //Temporal Dead Zone
const name = "Mike" // 함수 선언 및 할당
console.log(name) // 사용가능

let age =30;

function showAge(){
console.log(age)
let age = 20;
}
showAge();

호이스팅은 scope단위로 이루어 진다.

변수의 생성과정

var 1. 선언 및 초기화 단계
2. 할당 단계

let 1. 선언 단계
2. 초기화 단계
3. 할당 단계

const 1. 선언 +초기화 + 할당

let name;
name = 'Mike';

var age;
age = 30;

const gender; << SyntaxError: 선언과 할당이 동시에 이루어 지기 때문에 선언만 불가능
gender = 'male';

var = 함수 스코프
let , const = 블록 스코프 << 모든 코드 블록에서 선언된 변수는 내부에서만 사용 가능하며, 전역에서는 사용이 안된다.

const age = 30;
if(age>19){
var txt='성인';
}
console.log(txt); // '성인'
var로 선언되었기 때문에 전역에서 사용 가능하다.
하지만 함수에서는 유일하게 벗어 날수 없다.
var보다는 let과 const를 선호한다.

profile
코린이

0개의 댓글