Frontend

✍공부하기 | 자바스크립트의 타입

경아 (KyungA) 2020. 10. 10. 23:51
반응형

프론트엔드 개발자로 처음 이력서를 넣고 처음 면접이 잡혔을때

면접관님이

🙎‍♂️ : 자바스크립트 넘버 타입이 하나인데 그 이유가 뭔가요? 다른건 없나요? 

라고 물어봤더랬죠...

저는 그때 벼락치기로 면접 질문 리스트를 훑고 면접을 본 상태라.. 그때 했던 말이

🙎‍♀️ : 음...어... 자바스크립트가 싱글 스레스 언어인걸로 알고 있는데... 죄송합니다 잘 모르겠습니다

라고 대답을^^ 하하하하ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ.... 차라리 그냥 모른다고만 말하지 

왜 앞에 알고 있는 척, 연관도 없는 말을 한거죠.....

그래서 이 참에 제대로 알고 가려고 합니다!

 

 


 

 

 

1. 자바스크립트 Number Type

C 언어 같은 경우 숫자 타입은 Int, Long, Float, Double 등 다양하게 정의 된다고 합니다

그러나 자바스크립트는 Number이 하나만 있는데요

정수와 실수를 따로 구분하지 않고, 모든 수를 실수 하나로만 표현합니다

굉장히 유연하기 때문에 엔진이 원할때마다 암시적 변환가 가능합니다.

다양한 엔진이 존재하는 현 웹 개발환경 상 이러한 자바스크립트의 타입의 유연성은 필수적 요소라고 하죠

그러나 부동 소수점 수를 가지고 실수를 표현하는 점이, 결과값에 오차를 야기합니다

그래서 자바스크립트는 정수의 형태로 먼저 변환 후 계산을 수행하고 다시 실수의 형태로 재변환 하는 방법을 

사용합니다 (매우 복잡하네요 😅)

 

 

 

2. 자바스크립트의 Primitive Data Type(원시 타입)

👉 원시 타입이란?

변경 불가능한 값이며 값에 의한 전달이라고 합니다

자바스크립트에서는 객체가 아닌 것들이며, 값 '그 자체' 로 저장된 것입니다

  • Number : 숫자를 이용하여 연산
  • Blooean : 논리적 참, 거짓 (true, false)을 나타냄
  • String : 텍스트 데이터를 나타냄
  • null : 의도적으로 변수에 값이 없다는 것을 명시할 때 사용 
  • undefined : 선언 이후 값을 할당하지 않은 변수, 어떤 변수를 만들고 그 값을 정의해주지 않거나, 존재하지 않는 객체 프로퍼티로 접근 할 경우 undefined 값을 반환
  • + ES6에서 처음 생긴 Symbol : 이름의 충돌 위험이 없는 유일한 객체의 Property Key를 만들기 위해 사용

이 외에 원시 타입이 아닌 것들은 모두 객체(Object) 입니다

(함수는 단순히 특별한 타입의 오브젝트일 뿐이며, 새로운 오브젝트를 만들기 위해서 사용될 수 있습니다 = 생성자 함수)

💥 null과 undefined는 같은 의미가 아닌점 유의해주세요!

 

반응형