美文网首页
常用的工具函数

常用的工具函数

作者: cendechen | 来源:发表于2018-07-02 11:31 被阅读0次

在前端开发中,往往我们需要使用各种工具函数

判断是数组类型

es6版本

isArray = (arg) => Array.isArray(arg)

早期版本

isArray = (arg) => Object.prototype.toString.call(arg).indexOf('Array') > 0

判断是对象

es6版本

isPlainObject = (arg) => Object.prototype.toString.call(arg) === '[object Object]'

判断NAN

isNan(arg)

判断NULL

isNull = (arg) => {
  if (typeof arg === 'object' && arg === null) {
    return true 
  }   
  return false
}

深复制

function copy (orgin) {
  let target , i
  if (isPlainObject(orgin)) {
    target = {}
    for (i in orgin) {
      if (!target.hasOwnProperty(i) || isArray(orgin[i])) {
        if (isPlainObject(orgin[i])) {
          target[i] = copy(orgin[i])
        } else {
          target[i] = orgin[i]
        }
      }
    }
  } else if (isArray(orgin)) {
    target = []
    for( i = 0; i < orgin.length; i++) {
      if (isPlainObject(orgin[i]) || isArray(orgin[i])) {
        target.push(copy(orgin[i]))
      } else {
        target[i] = orgin[i]
      }
    }
  }
  return target
}

数组的递归复制

function clone(arg) {
  if (isArray(arg)) {
    return arg.map(clone)
  }
}

节流函数

保证一段时间里只执行一次

function throttle(...args) {
  let now = Date.now()
  let time = args[0]
  let wait = args[2]
  let fn = args[1]
  let that = this
  let timer
  return function () {
    let st = Date.now()
    clearTimeout(timer)
    if (st - now >= time) {
      now = st
      arg = Array.prototype.slice(3)
      fn.call(that, arg)
    } else {
      timer = setTimeout(fn, wait)
    }
  }
}

防抖函数

每次操作合并成一次操作

function Shake (...args) {
  var timer 
  var time = args[0]
  var fn = args[1]
  return function () {
    clearTimeout(timer)
    timer = setTimeout(fn, time)
  }
}

判断是否支持touch事件

function isSupportTouch (){
  return ('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch;
}

相关文章

  • day12-函数(1)

    一.常用三连 1、什么是函数 具备某一功能的工具>>>>>函数工具的使用:事先准备好工具>>>>>>>函数的定义遇...

  • 常用的工具函数

    在前端开发中,往往我们需要使用各种工具函数 判断是数组类型 es6版本 早期版本 判断是对象 es6版本 判断NA...

  • 常用的工具函数

    格式化时间 将url请求参数转为json格式 父子关系的数组转换成树形结构数据 树形结构数据转换成父子关系的数组 ...

  • JS开发常用工具函数

    原作版本 原文链接:# JS开发常用工具函数

  • Kotlin学习之Set常用集合工具函数

    Kotlin学习之Set常用集合工具函数 Kotlin中定义了很多工具函数,用来创建不同类型的Set,下面是一些常...

  • JQ原理

    jq的基本结构 jq入口函数分析 常用的jq方法 JQ 工具方法

  • php-常用函数

    常用函数 常用函数: 数组常用函数

  • 笔记丨互联网运营实战手册

    运营常用工具 Excle:数据分析,制作数据图表,掌握常用常用函数和公式,使用甘特图管理活动计划 Xmind:用思...

  • 常用 js 函数

    这里记录一下使用到常用的js文件以及一些常用到的工具类函数。(陆续更新...) rem布局常用方法

  • 关于JavaScript常用的工具函数汇总

    原文链接 关于JavaScript常用的工具函数汇总[https://tzy1997.com/articles/u...

网友评论

      本文标题:常用的工具函数

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