조금씩 꾸준히 완성을 향해

[JavaScript] Variable 변수의 기초 본문

기타 언어/JavaScript

[JavaScript] Variable 변수의 기초

all_sound 2022. 7. 27. 10:19

 

 

<variable 변수>

 

- 변경 가능한 값을 저장하기 위한 기억공간(memory)

 

- 사용하기 전 반드시 선언이 필요

 

- 중복 선언 불가

 

- key word = 'let'

 

let A = 123; //상수 선언 및 값 초기화
console.log(A) // 123

A = 456; //재할당
console.log(A); //456

let A = 789; //재선언 -> error(SyntaxError: Identifier 'A' has already been declared)

 
 
 
 

<const 상수>

 

- 변경 불가능한 값을 저장하기 위한 기억공간(memory)

 

- 사용하기 전 반드시 선언이 필요

 

- 중복 선언 불가

 

- key word = 'const'


const B = 123; //상수 선언 및 값 초기화
console.log(B); //123

B = 456; //재할당 -> error(TypeError: Assignment to constant variable)

const C; //초기화 없이 상수 선언 -> 에러
C = 123; //SyntaxError: Missing initializer in const declaration

 
 
 

<변수/상수 예제>

//선언 후 할당
let hi;
hi = 'hello';

//선언과 동시에 초기화
let halo = "Hello";

//한 줄에 여러 변수 선언과 초기화
let name = 'Dasol', age = 13, msg = "hello";

//상수는 보통 대문자로 표기
const TESTCASE = 5;
const BIRTHDAY = '1993.11.28';

 

 

<Hoisting>

 

- 코드에 선언된 변수 및 함수를 유효한 범위의 코드 상단으로 끌어 올리는 작업

 

- var의 변수/함수의 선언만 위로 올려지고, 할당은 올려지지 않음

 

- let / const 변수 선언과 함수 표현식에서는 호이스팅 발생하지 않음

 

    => var은 되도록 쓰지 말 것! 변하지 않는 값을 지정할 때는 되도록 const를 쓸 것!

 

//using var
console.log(name); //undifined
var name = 'john'
console.log(name); //john

//using let/const
//ReferenceError: Cannot access 'name_2' before initialization
console.log(name_2);
let name_2 = "john"