盘点Vue源码中用到的工具函数

本文详细剖析了Vue源码中`shared/util.js`文件内的关键工具函数,包括创建冻结空对象、判断值的类型、检测有效数组下标、判断Promise对象等。这些函数在Vue的实现中起着至关重要的作用,理解它们有助于深入掌握Vue的内部机制。
摘要由CSDN通过智能技术生成

以下摘取的函数,在 shared 目录下公用的工具方法。文件在 util.js 中,githu地址。

提取了一些常用通用的函数进行剖析,主要包含以下内容:

  1. 创建一个被冻结的空对象

  2. 判断是否是 undefined 或 null

  3. 判断是否不是 undefined 和 null

  4. 判断是否是原始类型

  5. 判断是否是对象类型

  6. 判断有效的数组下标

  7. 判断是否是一个 Promise 对象

  8. 删除数组中指定元素

  9. 用做缓存的高阶函数

  10. 递归判断一个对象是否和另个一个对象完全相同

  11. 函数只执行一次

  12. 自定义 bind 函数

  13. 创建一个被冻结的空对象
    export const emptyObject = Object.freeze({})
    一旦创建不能给这个对象添加任何属性。

  14. 判断是否是 undefined 或 null

    function isUndef (v) {
    return v === undefined || v === null
    }

在源码中很多地方会判断一个值是否被定义,所以这里直接抽象成一个公共函数。
传入任意值,返回是一个布尔值。

判断是否不是 undefined 和 null
function isDef (v) {
  return v !== undefined && v !== null
}

当传入的值,既不是 undefined 也不是 null 返回true。

  1. 判断是否是原始类型

    function isPrimitive (value) {
    return (
    typeof value === ‘string’ ||
    typeof value === ‘number’ ||
    typeof value === ‘symbol’ ||
    typeof value === ‘boolean’
    )
    }

在js中提供了两大类数据类型:

原始类型(基础类型):String、Number、Boolean、Null、Undefined、Symbol
对象类型:Object、Array、Function
5. 判断是否是对象类型

function isObject (obj: mixed) {
  return obj !== null && typeof obj === 'object'
}

传入的值排除掉 null,因为在js中 null 使用运算符 typeof 得到的值是 object,这是一个 bug。因为历史原因放弃修复了。具体可以参考这里查看

  1. 判断有效的数组下标

    function isValidArra

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值