[JS] 데이터 타입(원시 / 객체)
2448 단어 JavaScriptJavaScript
1. Primitive Type
1) number
- 모든 수를 실수로 처리
- Infinity, -Infinity, NaN
- BigInt형: 정수 리터럴 끝에 n 붙이기
2) string
- "큰 따옴표", '작은 따옴표',
역 따옴표(backtick)
- immutable value(변경 불가능한 값)
- 템플릿 리터럴 : 백틱(``) 사용
- 멀티라인 문자열:
escape sequence
,Array.prototype.join
없이 줄바꿈, 공백 표현 가능 - 표현식 삽입:
${표현식}
→ 문자열로 타입 강제 변환
ex) console.log(the result is ${1+2}
);
- 멀티라인 문자열:
3) boolean
- true, false
- "0" : true -> 비어있는 문자열("")을 제외한 모든 문자열 true
4) undefined
- 값이 할당되지 않은 상태, 초기화되지 않은 상태
- 개발자가 의도적으로 할당하지 않는게 좋음
- 비어있는 상태를 나타낼 경우, null 할당
5) null
- 존재하지 않는 값, 비어있는 값
- 변수에 값이 없는 걸 명시하고자할 때 사용
6) symbol
- 변경 불가능
- 다른 값과 중복되지 않는 유일무이한 값
- 외부에 노출되지 않음
- 객체의 유일한 프로퍼티 키를 만들 때 사용
- (리터럴이 아닌) Symbol 함수를 호출하여 생성
let id = Symbol('id'); // 심볼 id에는 'id'라는 설명이 붙음
2. Object/Reference Type
- 복잡한 데이터 구조 표현 (객체, 함수, 배열, ...)
자바스크립트는 객체 기반의 언어이며, 자바스크립트를 이루고 있는 거의 모든 것은 객체이다.
데이터 타입이 필요한 이유?
- 값을 저장할 때, 확보해야 할 필요한 메모리 공간의 크기를 결정하기 위해
- 값을 참조할 때, 읽어들어야 할 메모리 공간의 크기를 결정하기 위해
- 메모리에서 읽은 2진수를 어떻게 해석할 지 결정하기 위해
- 2진수 0100 0001 → 숫자65, 문자열A
동적 타이핑
- static/strong 정적 타입 언어: C, C++, JAVA, GO, ...
- 명시적 타입 선언: 데이터 타입을 사전에 선언해야 함
- 변수 타입 변경 불가
- 컴파일 시점에 타입 체크 수행 → 안정적인 코드 구현, 런타임 에러 감소
- dynamic/weak 동적 타입 언어: JS, Python, PHP, Ruby, ...
- (선언이 아닌) 할당에 의해 타입 결정
- 동적 타이핑: 재할당에 의해 변수 타입 변경 가능
- 타입 확신 불가, JS 엔진에 의해 타입 자동 변환되기도 함 → 변수 사용에 주의가 필요
- 변수 사용 시 주의 사항
- 꼭 필요한 경우에만 제한적 사용
- scope(유효 범위) 최대한 좁게
- 전역 변수 되도록 사용 X
- 변수보다는 상수 사용
- 네이밍 중요 !
Author And Source
이 문제에 관하여([JS] 데이터 타입(원시 / 객체)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hahaha/JS-데이터-타입저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)