728x90
📌 자바 스크립트에 지원하고 있는 자료형
✅ 기본 자료형 (Primitive)
◾ boolean : 논리적인 요소. true와 false값이 있다.
◾ null : 빈 값
◾ undefined : 값을 할당하지 않은 변수가 가지는 값
◾ numer : 숫자형으로 정수와 부동 소수점, 무한대 및 NaN (숫자가 아님) 값을 포함한다.
◾ string : 문자열
◾ symbol (ES6에 추가됨)
✅ 객체 자료형
◾ object
심볼(Symbol)이란, 다른 값과 중복되지 않는 자료형(unique) 이다.
프로그램에서 이름(변수명)의 충돌 없이 사용하기 위해 활용한다.
일반적으로 심볼 타입은 객체의 프로퍼티 키로 사용된다.
📌 심볼 값 생성
심볼은 전역 함수 Symbol을 사용해서 생성한다.
const symbol = Symbol(); // 심볼 생성
console.log(symbol); // symbol()
console.log(typeof symbol); // symbol
심볼은 인자로 문자열을 전달 할 수 있는데 이 값은 디버깅을 위해서 사용한다.
프로퍼티에 접근하기 위한 용도로는 사용될 수 없지만
심볼을 쉽게 읽고 디버깅 할 수 있도록 항상 제공하는 것이 좋다.
const symbol = Symbol('name');
console.log(symbol); // Symbol(name)
📌 래퍼 객체 (Wrapper object)
자바스크립트에서 래퍼객체는 String, Number, Boolean 등이 있는데
String, Number, Boolean은 new(생성자) 키워드를 사용하여 생성하지만
Symbol은 new 키워드 없이 사용해야 한다.
const symbol = new Symbol(); // TypeError: Symbol is not a constructor
const symbol = Symbol(); // 정상
📌 유일한 값
심볼은 생성될때마다 새로운 심볼을 생성한다.
console.log(Symbol('name') === Symbol('name')); // false
📌 유일한 값
심볼은 변경이 불가능한 값이다.
let symbol = Symbol();
symbol = symbol + 'abc'; // TypeError: Cannot convert a Symbol value to a string
728x90
'FRONTEND > Javascript' 카테고리의 다른 글
[JS] UUID로 고유값 생성하기 (0) | 2023.08.16 |
---|---|
[JS] 일반 함수와 화살표 함수의 차이 (0) | 2023.05.17 |
[JS] 객체 반복문 돌리기 (0) | 2023.04.19 |
[JS] textarea 높이 자동 조절 (0) | 2023.04.18 |
[JS] 원시타입과 참조타입 (0) | 2023.04.14 |