检查值是否为 Symbol 原始类型(含类型收窄)
Symbol 没有包装对象(new Symbol() 会抛 TypeError), 因此仅需 typeof val === 'symbol' 即可完全判定。
new Symbol()
typeof val === 'symbol'
— 待检查的任意值
true 当且仅当 val 是 symbol,同时收窄为 symbol
true
symbol
if (isSymbol(val)) { console.log(val.description); // val: symbol}isSymbol(Symbol('test')); // trueisSymbol(Symbol.iterator); // trueisSymbol('symbol'); // false Copy
if (isSymbol(val)) { console.log(val.description); // val: symbol}isSymbol(Symbol('test')); // trueisSymbol(Symbol.iterator); // trueisSymbol('symbol'); // false
检查值是否为 Symbol 原始类型(含类型收窄)
Symbol 没有包装对象(
new Symbol()会抛 TypeError), 因此仅需typeof val === 'symbol'即可完全判定。