itools.js
Version:
前端开发中常用的工具方法
166 lines (118 loc) • 3.05 kB
Markdown
3K
```
```javascript
npm i -S itools.js
```
```javascript
// 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
对象深拷贝
```javascript
let obj_a = { a: 1 }
let obj_b = iTools.clone(obj_a) // cloneDeep
```
* cookie
cookie 操作
```javascript
iTools.cookie.set('name','value','exSeconds','path')
let name = iTools.cookie.get('name')
iTools.cookie.del('name')
```
* copy
复制一个字符串到剪贴板
```javascript
let str = 'copy str'
if(iTools.copy(str)){
alert('copy success')
}
```
* download
保存一个路径到本地并重命名
```javascript
let filename = '当前页面'
let filePath = window.location.href
iTools.download(filename, filePath)
```
* getParam
获取浏览器地址栏中的参数
```javascript
let name = iTools.getParam('name')
let age = iTools.getParam('age', 'https://suohb.com?age=18')
```
* randomStr
获取固定长度的随机字符串
```javascript
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
判断变量类型
```javascript
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
```javascript
console.log(iTools.uniqueId()) // kdqsnvmi_zri604sxb89
```
* debounce & throttle
防抖和节流函数
```javascript
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
```javascript
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
方法仅执行一次
```javascript
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)
```
前端开发中常用的工具方法
```
size <