isSymbol | lodash 源码解读
小于 1 分钟
isSymbol
用来判断一个变量是否是Symbol类型。
function isSymbol(value) {
const type = typeof value
return type == 'symbol' || (type === 'object' && value != null && getTag(value) == '[object Symbol]')
}
首先用typeof来判断,如果返回的是symbol,则说明该变量是Symbol类型;为了兼容某些环境下typeof对Symbol返回的是object,无法用typeof判断Symbol的情况,又增加了一层判断,即如果该变量不是null并且getTag方法返回的是[object Symbol],则可以判断该变量为Symbol类型。