let symbol = Symbol();
typeof symbol
/* symbol */
/* 接收参数 - 仅作为描述 */
let symbol1 = Symbol('week');
symbol1;
/* Symbol(week) */
symbol1.toString();
/* "Symbol(week)" */
let symbol1 = Symbol();
let symbol2 = Symbol();
symbol1 === symbol2;
/* false */
let symbol1 = Symbol('object');
let symbol2 = Symbol('object');
symbol1 === symbol2;
/* false */
/* 隐式转换 */
const obj = {
toString() {
return 'object';
}
};
const symbol = Symbol(obj);
symbol;
/* Symbol(object) */
/* 不能参与运算 */
let symbol = Symbol('symbol');
"hello" + symbol;
/* TypeError: Cannot convert a Symbol value to a string */
/* 类型转换 */
String(symbol);
symbol.toString();
/* Symbol(symbol) */
let symbol = Symbol();
Boolean(symbol);
/* true */
Number(symbol);
/* TypeError: Cannot convert a Symbol value to a number */
description - Symbol描述
const symbol = Symbol('symbol');
sym.description;
/* "symbol" */