[자바스크립트] 데이터타입

박은정·2021년 11월 20일
0

자바스크립트

목록 보기
18/25
post-thumbnail

데이터타입

자바스크립트의 기본 자료형

  • 원시 자료형 primitive는 객체가 아닌 자료형으로 메서드를 가지지 않는다.
  • 원시 자료형의 종류로는 string, number, boolean, null, undefined, Symbol 6가지로 구성되어있다.
  • 원시 자료형은 하나의 값만 담을 수 있지만, 객체 object는 여서 속성의 모음reference을 저장할 수 있다.

== vs === 차이점

항등 연산자(equality) ==, != 는 자바스크립트 엔진에서 데이터의 타입을 변경해서 값이 동일한지 확인한다
완전 항등 연산자(strict equality) ===, !==는 데이터타입이 다르면 다르다고 인식된다

const stringFive = '5';
const numberFive = 5;

console.log(stringFive == numberFive); // true
console.log(stringFive === numberFive); // false

null vs undefined

기본적으로 null, undefined는 저장되어있는 자료가 없다는 뜻으로 혼용할 수 있지만,
null은 값이 없음을 나타내고, undefined는 정의되지 않은 값을 나타낸다.

그래서 항등 연산자로 null과 undefined를 비교하면 동일하다고 인식되지만,
완전 항등 연산자로 둘을 비교하면 데이터 타입이 다르기 때문에 다르다고 나온다.

console.log(null == undefined); // true
console.log(null === undefined); // false

var, const, let 차이점

3개모두 자바스크립트에서 변수를 정의할 때 사용하는 키워드이다.
자바스크립트는 동적 언어 dynamic language 이기 때문에 정적 언어와는 달리 변수를 정의할 때 자료형을 정의할 필요가 없다

1. Scope의 차이

  • var: 블록 스코프가 아닌 함수 스코프이기 때문에 블록 스코프 안에서 var 키워드로 정의된 변수가 블록 밖에서도 사용이 가능하다
  • const, let : 블록 스코프로 종속되기 때문에 변수가 선언된 블록과 그 하위 블록에서만 사용이 가능하다

2. 호이스팅의 차이

  • 보통 var는 호이스팅이 되지만 let & const는 호이스팅이 되지 않는다고 하지만,
  • 호이스팅이 어떻게 쓰일 지 수집하고 시작하는 현상이라는 개념으로 봤을 때, let과 const도 호이스팅은 되지만 실제로 데이터가 할당되서 사용되기 전까지는 TDZ에 있다.

Plus. 데이터 재할당의 여부차이

  • let, var: 데이터의 재할당이 가능하다 Mutable Data Type
  • const: 데이터의 재할당이 불가능하다Immutable Data type
profile
새로운 것을 도전하고 노력한다

0개의 댓글