프로그래밍 언어/Javascript

[JS Basic] Variable & Data Type (var,let,const / undefined,null)

DigIT_JHB 2022. 12. 10. 23:18

1. var / let /const 차이점

  • JavaScript에서는 var, let, const를 이용해서 변수를 선언할 수 있다.
  • var
    • ES5까지 var 키워드를 통해서만 변수 선언 가능.
    • var를 사용해도 되지만, 최신 버전에 맞는 문법(let, const)을 사용하는 것이 좋다.
    • 중복 선언 가능.
var name = 'javascript';
console.log(name); // javascript

var name = 'javascript2';
console.log(name); // javascript2

//동일한 이름 'name'으로 여러 번 중복해서 선언 가능
    • Function-level scope로 함수 내에서 선언된 변수는 함수 내에서만 유효, 함수 외부에서는 전역 변수로 취급.
    • Hoisting(변수 선언들을 모두 유효 범위의 최상단으로 끌어올려 선언) 시 'undefined'로 변수 초기화 
  • let
    • var과 다르게 중복 선언 불가능.
    • 변수 재할당은 가능.
    • Block-level scope로 정해진 코드 블록 내부에서만 유효.
function func() {
	if (1) {
    	var a = 5;
        console.log(a); // 5
    }
    console.log(a); // 5(function-level scope)
}

//

function func() {
	if (1) {
    	let a = 5;
        console.log(a); // 5
    }
    console.log(a); // ReferenceError: a is not defined(Block-level scope)
}
    • Hoisting 시 변수 초기화 X
  • const
    • let과 마찬가지로 중복 선언 불가능.
    • const 키워드를 사용한 변수 재할당 불가능.(constant 역할)
    • Block-level scope로 정해진 코드 블록 내부에서만 유효.
    • Hoisting 시 변수 초기화 X

2. Data Type

2-1. JavaScript Data types

✔️ Primitive Type:(변수에 실제 데이터 값 저장)

  • String 
  • Number
  • Boolean
  • Undefined
  • Null
  • Symbol 

✔️ Reference Type:(변수에 할당 시 데이터에 대한 메모리 주소 값 저장)

  • object
  • array
  • function

 

2-2. undefined vs null

 

undefined

  • 값이 정의되지 않은 데이터의 타입
  • 선언한 후에 값을 할당하지 않은 변수나
  • 값이 주어지지 않은 인수
  • 함수가 값을 return하지 않았을 때 자동 할당

null

  • 어떤 값이 의도적으로 비어있음을 표현.
  • type of(null)은  "object" 로 나온다.
  •  해당 변수가 어떤 객체도 가리키고 있지 않다는 것을 의미
  • undefined == null 은 true

 

반응형