# isTypedArray
# Description
检查 value
是否是 TypedArray。
# Params
value
# Return
Boolean
# Depend
import getTag from './.internal/getTag.js'
import nodeTypes from './.internal/nodeTypes.js'
import isObjectLike from './isObjectLike.js'
# Code
/** Used to match `toStringTag` values of typed arrays. */
const reTypedTag = /^\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)Array\]$/
/* Node.js helper references. */
const nodeIsTypedArray = nodeTypes && nodeTypes.isTypedArray
const isTypedArray = nodeIsTypedArray
? (value) => nodeIsTypedArray(value)
: (value) => isObjectLike(value) && reTypedTag.test(getTag(value))
# Analyze
reTypedTag
- 判断
nodeTypes
是否存在,也就是node
下util.types
是否可用 - 如果
util.types
可用,则使用util.types.isTypedArray
方法来进行判断 - 否则 判断
value
是不是一个不为null
的object
,同时正则匹配value
的toString
的值
# Remark
# Example
isTypedArray(new Uint8Array)// => true
isTypedArray([])// => false
← isSymbol isUndefined →