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
类型。