美文网首页
lodash源码学习之 isObject

lodash源码学习之 isObject

作者: 指尖的宇宙 | 来源:发表于2018-04-17 12:08 被阅读0次

lodash 官方的定义的好处这里就不再赘述了 ,之所以将这个函数抽出来梳理一下,主要的原因是这个函数和其他的函数耦合的不是很强,即使在项目中不使用lodash这个库,依然可以将这个函数单独拿出来使用,虽然短短两行,但是里面的知识点还是很多的。

首先这个函数的实现使用了typeof首先判断了数据类型.

在js中的 typeof 返回六种数据类型:

  1.'undefned' 这个值未定义。
  2.'bollean'  这个值是布尔值。
  3.'string'   这个值是字符串。
  4.'number'   这个值是number。
  5.'object'   这个值是对象或者null。
  6.'function' 这个值是函数。

我们通常认为 函数 和 object 能够很好的判断
但是这里有一个非常重要的问题容易忽视 null在js中使用typeof判断的时候
返回的也是 'object', 因此还需要使用 != null 进行判断。

知识点:

&& 运算符:两边全部为 true 这个表达式才是 true。
使用&&短路操作 如果是value 是 null 则直接返回false
如果 value 不是 null 继续判断判断&&后面的内容 后面用了()看成一个独立的表达式。
|| 运算符:两边只要有一个为true 这个表达式就是 true
因此 如果 type 是'object' 那么后面的 type == 'function'不再执行。
如果 type 是 'function' type == 'object'返回false 继续执行 type == 'function' 返回true。

  function isObject(value) {
    var type = typeof value; // 使用 typeof 将这个value的数据类型判断出来
    return value != null && (type == 'object' || type == 'function');
  }

相关文章

  • lodash源码学习之 isObject

    lodash 官方的定义的好处这里就不再赘述了 ,之所以将这个函数抽出来梳理一下,主要的原因是这个函数和其他的函数...

  • [读] lodash 中文学习拾零之 Map/Reduce篇

    lodash 中文学习拾零之 Map/Reduce篇

  • lodash源码之add

    1、使用场景 add方法用于计算两个数的和 2、源码分析 add.js 可以看到,add方法的源码很短。首先引入一...

  • lodash源码之chunk

    1、使用场景 _.chunk(array, [size=1])将数组(array)拆分成多个 size 长度的区块...

  • lodash.js源码笔记1

    源码学习笔记将按照lodash源码js文件的字母顺序书写 add(number1, number2), 接收两个n...

  • Lodash源码解析 Part1:Array、Collectio

    Lodash源码解析 Part1:Array、Collection lodash究竟做了什么?封装封装可能会用到但...

  • loadsh防抖节流源码解读

    debounce 源码解析 lodash debounce 用法 _.debounce(func, [wait=0...

  • lodash源码解析

    前言:虽然现在前端生态越来越丰富,三大框架鼎足而立,但是,原生的JS编码能力还是很重要的,所以决定学一下lodas...

  • lodash 源码解读

    以下代码都来自于4.17.11-es分支 1. isObjectLike 两行代码,少到令人发指的地步,这样看来只...

  • 谈谈js中的节流和防抖函数

    关于节流和防抖,这篇文章说的很好了,深入lodash源码分析防抖和节流深入篇 | Lodash 防抖和节流是怎么实...

网友评论

      本文标题:lodash源码学习之 isObject

      本文链接:https://www.haomeiwen.com/subject/ncmukftx.html