# isArrayBuffer
# Description
检查 value 是否是 ArrayBuffer 对象。
# Params
value
# Return
Boolean
# Depend
import getTag from './.internal/getTag.js'
import isObjectLike from './isObjectLike.js'
import nodeTypes from './.internal/nodeTypes.js'
# Code
const nodeIsArrayBuffer = nodeTypes && nodeTypes.isArrayBuffer
const isArrayBuffer = nodeIsArrayBuffer
? (value) => nodeIsArrayBuffer(value)
: (value) => isObjectLike(value) && getTag(value) == '[object ArrayBuffer]'
# Analyze
可以看到,如果可以使用 node
的 isArrayBuffer
来判断,则使用 node
,否则就判断 value
是否为一个对象,并且 getTag
之后的值为 '[object ArrayBuffer]'
满足的情况下,则表示 value 是一个 ArrayBuffer
对象
# Remark
- ArrayBuffer MDN (opens new window) 对象用来表示通用的、固定长度的原始二进制数据缓冲区。
# Example
isArrayBuffer(new ArrayBuffer(2))
// => true
isArrayBuffer(new Array(2))
// => false