前端开发中常用的工具方法
size < 3K
npm i -S itools.js
// esm
import iTools from 'itools.js'
// vue
Vue.prototype.$tools = iTools
// cjs
const iTools = require('itools.js')
// iife
<script src='dist/itools.js'></script>
-
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')
-
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)