索洪波的网站

vuePress-theme-reco 索洪波    2014 - 2022
索洪波的网站 索洪波的网站
主页
文章随笔
  • 知识整理
  • 原创特效
  • 开发日记
  • 前端工具
  • 其他
标签
原创特效
留言板
GitHub
author-avatar

索洪波

69

Article

21

Tag

主页
文章随笔
  • 知识整理
  • 原创特效
  • 开发日记
  • 前端工具
  • 其他
标签
原创特效
留言板
GitHub

前端常用函数集合itools.js

vuePress-theme-reco 索洪波    2014 - 2022

前端常用函数集合itools.js

索洪波 2020-08-12 前端工具

项目开发中,经常会用到很多的工具函数,每个新项目需要重复的复制或者单个引用。
于是,我将前端开发中常用的工具方法集合到一个工具库中 itools.js

# Install

npm i -S itools.js

# Usage

// esm 
import iTools from 'itools.js'
// vue
Vue.prototype.$tools = iTools

// cjs
const iTools = require('itools.js')

// iife
<script src='dist/itools.js'></script>

# API

  • clone

    对象深拷贝

    let obj_a = { a: 1 }
    let obj_b = iTools.clone(obj_a) // cloneDeep
    
  • cookie

    cookie 操作

    iTools.cookie.set('name','value','exSeconds','path')
    let name = iTools.cookie.get('name')
    iTools.cookie.del('name')
    
  • copy

    复制一个字符串到剪贴板

      let str = 'copy str'
    if(iTools.copy(str)){
        alert('copy success')
    }
    
  • download

    保存一个路径到本地并重命名

    let filename = '当前页面'
    let filePath = window.location.href
    iTools.download(filename, filePath)
    
  • getParam

    获取浏览器地址栏中的参数

    let name = iTools.getParam('name')
    let age = iTools.getParam('age', 'https://suohb.com?age=18')
    
  • isBrowser

    判断当前环境是否是浏览器环境

      let isBrowser = iTools.isBrowser // 是否浏览器环境
    
  • randomStr

    获取固定长度的随机字符串

    let str = iTools.randomStr(10) // 
    let str2 = iTools.randomStr(9,'letter') // only letter
    let str3 = iTools.randomStr(8,'number') // only number
    console.log(str, str2, str3) // lq3hc8ogxl carijlvjz 83568934
    
  • type

    判断变量类型

    console.log(iTools.type('str')) // string
    console.log(iTools.type(124)) // number
    console.log(iTools.type(true)) // boolean
    console.log(iTools.type(null)) // null
    console.log(iTools.type([1, 2, 3])) // array
    console.log(iTools.type(() => { })) // function
    console.log(iTools.type({ a: 1 })) // object
    console.log(iTools.type(new Date())) // date
    console.log(iTools.type(undefined)) // undefined
    
  • uniqueId

    获取唯一ID

    console.log(iTools.uniqueId()) // kdqsnvmi_zri604sxb89
    
  • debounce & throttle

    防抖和节流函数

      function logPos(e) {
      	console.log(e.pageX, e.pageY)
      }
      // debounce
      // document.addEventListener('mousemove', iTools.debounce(logPos, 500))
      // throttle
      document.addEventListener('mousemove', iTools.throttle(logPos, 500))