본문 바로가기
프로그래밍/Javascript & React

[Javascript] 데이터 타입_원시(Prototype) 데이터 타입과 객체 데이터 타입

by Dean30 2022. 1. 16.
728x90

[Javascript] 데이터 타입_원시(Prototype) 데이터 타입과 객체 데이터 타입

 

데이터 타입

데이터 타입은 크게 객체와 객체가 아닌 것으로 나눌 수 있다.

 

원시(기본) 데이터 타입

  • 숫자
  • 문자열
  • 불리언 (true/false)
  • null
  • undefined

 

객체(참조) 데이터 타입 

명시적으로 객체 데이터 타입이라 잘 얘기하진 않지만.. 원시 데이터 타입과 반대되는 개념이다.

아래의 예에서 str은 문자열임에도 객체와 같이 적용되었다.

str.length의 '.' 점은 Object Acess Operator이다.  즉 점 앞에 객체가 있다는 얘기다.

 

var str = 'coding';

// str = new String('coding');

console.log(str.length); // 6
console.log(str.charAt(0)); // "c"

 

이것은 자바스크립트가 자동으로 원시 데이터를 객체처럼 사용하게 하기 위해 레퍼 객체(wrapper object)를 생성하기 때문이다.

그래서 실제로 str = new String('coding')과 같이 객체로 감싸고, 그 코드가 종료되면 다시 원시 데이터 타입으로 변경한다.

 

var str = 'coding';
// str = new String('coding');
str.prop = 'everybody'; // error가 나지 않음. 레퍼 함수에 의해 객체화 되어서
console.log(str.prop); // undefined. 다시 원시 데이터화 됨

 

 

레퍼 객체 종류

 

  • 숫자 -> Number
  • 문자열 -> String
  • 불리언 (true/false) -> Boolean
  • null -> x
  • undefined -> x
728x90

댓글