Symbol() 생성자
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Symbol()
함수는 타입 Symbol의 원시 값을 반환합니다.
시도해보기
구문
매개변수
description
Optional-
문자열. 디버깅에는 사용할 수 있지만 심볼 자체에 접근하기 위해 사용할 수 없는, 심볼에 대한 설명입니다.
예제
Symbol 생성하기
새로운 원시 심볼을 만들기 위해서는 아래와 같이 설명으로 사용할 선택적 문자열과 함께 Symbol()
을 사용하면 됩니다.
js
const sym1 = Symbol();
const sym2 = Symbol("foo");
const sym3 = Symbol("foo");
위의 코드는 세 개의 새로운 심볼을 생성합니다. Symbol("foo")
는 문자열 "foo"
를 강제로 심볼로 만들지 않습니다.
매번 새로운 심볼을 생성합니다.
js
Symbol("foo") === Symbol("foo"); // false
new Symbol()
new
연산자를 사용한 아래 구문은 TypeError
를 발생시킵니다.
js
const sym = new Symbol(); // TypeError
이는 작성자가 새 심볼 값 대신 명시적인 Symbol
래퍼 개체를 만드는 것을 방지하며 원시 데이터 타입을 중심으로 명시적인 래퍼 개체를
만드는 것이 일반적으로 가능하기 때문에 놀랄 수 있습니다(예: new Boolean
, new String
and new Number
).
정말로 Symbol
래퍼 객체를 생성하려면 Object()
함수를 사용할 수 있습니다.
js
const sym = Symbol("foo");
const symObj = Object(sym);
typeof sym; // "symbol"
typeof symObj; // "object"
명세서
Specification |
---|
ECMAScript Language Specification # sec-symbol-constructor |
브라우저 호환성
BCD tables only load in the browser