_.isArrayBuffer(value)
128
_.isArrayBuffer(value)
_.isArrayBuffer检查一个值是否被分类为arrayBuffer对象
参数
value (*): 需要检查的值
返回值
(boolean): 如果是arrayBuffer返回true,否则false
例子
_.isArrayBuffer(new ArrayBuffer(2)); // => true _.isArrayBuffer(new Array(2)); // => false
源代码
import baseGetTag from './.internal/baseGetTag.js' import isObjectLike from './isObjectLike.js' import nodeTypes from './.internal/nodeTypes.js' /* Node.js helper references. */ //引用nodejs中的助手函数isArraybuffer const nodeIsArrayBuffer = nodeTypes && nodeTypes.isArrayBuffer /** * Checks if `value` is classified as an `ArrayBuffer` object. * * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. * @example * * isArrayBuffer(new ArrayBuffer(2)) * // => true * * isArrayBuffer(new Array(2)) * // => false */ //检查一个值是否被分类为arrayBuffer对象 const isArrayBuffer = nodeIsArrayBuffer ? (value) => nodeIsArrayBuffer(value) : (value) => isObjectLike(value) && baseGetTag(value) == '[object ArrayBuffer]' //如果可以获取到nodejs的助手函数就用nodejs的方法判断,否则判断是否是object-like对象并且toStringTag是[object ArrayBuffer] export default isArrayBuffer
nodeTypes
import freeGlobal from './freeGlobal.js' /** Detect free variable `exports`. */ //探测exports对象 const freeExports = typeof exports == 'object' && exports !== null && !exports.nodeType && exports /** Detect free variable `module`. */ //探测module对象 const freeModule = freeExports && typeof module == 'object' && module !== null && !module.nodeType && module /** Detect the popular CommonJS extension `module.exports`. */ //探测 commonjs扩展 module.exports 对象 const moduleExports = freeModule && freeModule.exports === freeExports /** Detect free variable `process` from Node.js. */ //探测nodejs中的process对象 const freeProcess = moduleExports && freeGlobal.process /** Used to access faster Node.js helpers. */ //用来获取更快的nodejs助手函数 const nodeTypes = ((() => { try { /* Detect public `util.types` helpers for Node.js v10+. */ /* Node.js deprecation code: DEP0103. */ //探测公共方法util.types在nodejs v10版本以上 const typesHelper = freeModule && freeModule.require && freeModule.require('util').types return typesHelper ? typesHelper /* Legacy process.binding('util') for Node.js earlier than v10. */ //nodejs v10版本以下的情况获取到util模块 : freeProcess && freeProcess.binding && freeProcess.binding('util') } catch (e) {} })()) export default nodeTypes
freeGlobal
/** Detect free variable `global` from Node.js. */ const freeGlobal = typeof global == 'object' && global !== null && global.Object === Object && global //探测nodejs环境下的global对象 export default freeGlobal