前端常用函数集合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))