sew-itools.js
Version:
前端开发中常用的工具方法
161 lines (118 loc) • 2.9 kB
Markdown
前端开发中常用的工具方法
```
size < 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://abc.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)
```