1.0.6 • Published 2 years ago

sew-itools.js v1.0.6

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

itools

前端开发中常用的工具方法

size < 3K

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://abc.com?age=18')
  • 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))
  • trim

    针对 string、array、object 格式,深度 trim

    let str4 = ' aa '
    let arr = [' aa ', ' bb ']
    let obj = { a: ' aa ', b: [' bb  '] }
    console.log(iTools.trim(str4)) // aa
    console.log(iTools.trim(arr)) // ['aa','bb']
    console.log(iTools.trim(obj)) // {a:'aa',b:['bb']}
  • once

    方法仅执行一次

    let objOnce = {
      name: 'once',
      getName(value) {
        console.log(this.name, value)
      },
    }
    let objOnce2 = {
      name: 'once2',
    }
    let onceFn = iTools.once(objOnce.getName, objOnce2)
    onceFn(1) // once2 1
    onceFn(2)