_.isTypedArray(value)

159

_.isTypedArray(value)

_.isTypedArray判断一个值是否是一个typed array

参数

value (*): 需要检查的值

返回值

(boolean): 如果是typed array对象返回true,否则false

例子

_.isTypedArray(new Uint8Array);
// => true
 
_.isTypedArray([]);
// => false

源代码

import getTag from './.internal/getTag.js'
import nodeTypes from './.internal/nodeTypes.js'
import isObjectLike from './isObjectLike'

/** Used to match `toStringTag` values of typed arrays. */
//用于匹配 typeArray类型数据的toStringTag
const reTypedTag = /^\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)\]$/

/* Node.js helper references. */
//nodejs提供的工具函数 util.types.isTypedArray(value)
const nodeIsTypedArray = nodeTypes && nodeTypes.isTypedArray

/**
 * Checks if `value` is classified as a typed array.
 *
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 * @example
 *
 * isTypedArray(new Uint8Array)
 * // => true
 *
 * isTypedArray([])
 * // => false
 */
//判断一个值是否是一个typed array
const isTypedArray = nodeIsTypedArray
  ? (value) => nodeIsTypedArray(value)
  : (value) => isObjectLike(value) && reTypedTag.test(getTag(value))
  //如果是nodejs环境之间调用util.types.isTypedArray(value)判断
  //否则判断是否是object-like对象并且toStringTag是否符合要求

export default isTypedArray

 

posted @ 2019-01-10 19:40  hahazexia  阅读(384)  评论(0)    收藏  举报