✍공부하기 | 자바스크립트의 타입
프론트엔드 개발자로 처음 이력서를 넣고 처음 면접이 잡혔을때
면접관님이
🙎♂️ : 자바스크립트 넘버 타입이 하나인데 그 이유가 뭔가요? 다른건 없나요?
라고 물어봤더랬죠...
저는 그때 벼락치기로 면접 질문 리스트를 훑고 면접을 본 상태라.. 그때 했던 말이
🙎♀️ : 음...어... 자바스크립트가 싱글 스레스 언어인걸로 알고 있는데... 죄송합니다 잘 모르겠습니다
라고 대답을^^ 하하하하ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ.... 차라리 그냥 모른다고만 말하지
왜 앞에 알고 있는 척, 연관도 없는 말을 한거죠.....
그래서 이 참에 제대로 알고 가려고 합니다!
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는 같은 의미가 아닌점 유의해주세요!