# isString
# Description
检查 value 是否是原始字符串 String 或者对象。
# Params
value
# Return
Boolean
# Depend
import getTag from './.internal/getTag.js'
# Code
function isString(value) {
const type = typeof value
return type === 'string' || (type === 'object' && value != null && !Array.isArray(value) && getTag(value) == '[object String]')
}
# Analyze
拿到 value
的 type
,判断 type
为 string
或者 在 type
为 object
时要判断其是否为字符串
这里 lodash
判断了 value != null
并且 value
不是数组,然后通过 getTag
判断了 value
的 类型
value
为 对象时, getTag
类型为 '[object String]'
表示其为 字符串
# Remark
这里判断了 value != null
和 value
不是 数组的情况,从某种程度上来说,完全没有必要,直接通过 getTag(value)
判断类型即可
# Example
isString('abc')
// => true
isString(1)
// => false