1, delay function delay

const delay = ms => new Promise((resolve, reject) => setTimeout(resolve, ms)) const getData = status => new Promise((resolve, reject) => { status ? resolve('done') : reject('fail') }) const getRes = async (data) => { try { const res = await getData(data) const timestamp = new Date().getTime() await delay(1000) console.log(res, New Date().getTime() -timestamp)} catch (error) {console.log(error)}} getRes(true) // The interval was 1 secondCopy the code

2. Split an array of elements of specified length

const listChunk = (list, size = 1, cacheList = []) => { const tmp = [...list] if (size <= 0) { return cacheList } while (tmp.length) { cacheList.push(tmp.splice(0, size)) } return cacheList } console.log(listChunk([1, 2, 3, 4, 5, 6, 7, 8, 9])) // [[1], [2], [3], [4], [5], [6], [7], [8], [9]] console.log(listChunk([1, 2, 3, 4, 5, 6, 7, 8, 9], 3)) // [[1, 2, 3], [4, 5, 6], [7, 8, 9]] console.log(listChunk([1, 2, 3, 4, 5, 6, 7, 8, 9], 0)) // [] console.log(listChunk([1, 2, 3, 4, 5, 6, 7, [], 1)) // []Copy the code

3. Get array intersection

const intersection = (list, ... args) => list.filter(item => args.every(list => list.includes(item))) console.log(intersection([2, 1], [2, 3])) // [2] console.log(intersection([1, 2], [3, 4])) // []Copy the code

4. Currization of the function

const curring = fn => { const { length } = fn const curried = (... args) => { return (args.length >= length ? fn(... args) : (... args2) => curried(... args.concat(args2))) } return curried } const listMerge = (a, b, c) => [a, b, c] const curried = curring(listMerge) console.log(curried(1)(2)(3)) // [1, 2, 3] console.log(curried(1, 2)(3)) // [1, 2, 3] console.log(curried(1, 2, 3)) // [1, 2, 3]Copy the code

5. Remove and replace Spaces before the string

const trimStart = str => str.replace(new RegExp('^([\\s]*)(.*)$'), '$2')

console.log(trimStart(' abc ')) // abc
console.log(trimStart('123 ')) // 123
Copy the code

6. Remove and replace Spaces after the string

const trimEnd = str => str.replace(new RegExp('^(.*?) ([\\s]*)$'), '$1') console.log(trimEnd(' abc ')) // abc console.log(trimEnd('123 ')) // 123Copy the code

Gets the rank of the child element of its parent element

const getIndex = el => { if (! el) { return -1 } let index = 0 do { index++ } while (el = el.previousElementSibling); return index }Copy the code

Get the offset of the current element relative to document

 const getOffset = el => {
     const {
         top,
         left
     } = el.getBoundingClientRect()
     const {
         scrollTop,
         scrollLeft
     } = document.body
     return {
         top: top + scrollTop,
         left: left + scrollLeft
     }
 }
Copy the code

Get the element type

const dataType = obj => Object.prototype.toString.call(obj).replace(/^\[object (.+)\]$/, '$1').toLowerCase();
Copy the code

10. Determine whether it is a mobile terminal

const isMobile = () => 'ontouchstart' in window
Copy the code

11. Fade Animation

 const fade = (el, type = 'in') {
     el.style.opacity = (type === 'in' ? 0 : 1)
     let last = +new Date()
     const tick = () => {
         const opacityValue = (type === 'in'
                              ? (new Date() - last) / 400
                             : -(new Date() - last) / 400)
         el.style.opacity = +el.style.opacity + opacityValue
         last = +new Date()
         if (type === 'in'
           ? (+el.style.opacity < 1)
           : (+el.style.opacity > 0)) {
             requestAnimationFrame(tick)
         }
     }
     tick()
 } 
Copy the code

Parse a string of the specified format to a date string

const dataPattern = (str, format = '-') => { if (! str) { return new Date() } const dateReg = new RegExp(`^(\\d{2})${format}(\\d{2})${format}(\\d{4})$`) const [, month, day, year] = dateReg.exec(str) return new Date(`${month}, ${day} ${year} ')} console.log(dataPattern('12-25-1995')) // Mon Dec 25 1995 00:00:00 GMT+0800Copy the code

13, prohibit web page copy and paste

const html = document.querySelector('html') html.oncopy = () => false html.onpaste = () => false
Copy the code

14, The input box can only be entered in Chinese

const input = document.querySelector('input[type="text"]') const clearText = target => {
     const {
         value
     } = target
     target.value = value.replace(/[^\u4e00-\u9fa5]/g, '')
 }
 input.onfocus = ({target}) => {
     clearText(target)
 }
 input.onkeyup = ({target}) => {
     clearText(target)
 }
 input.onblur = ({target}) => {
     clearText(target)
 }
 input.oninput = ({target}) => {
     clearText(target)
 }
Copy the code

15. Remove THE HTML code from the string

const removehtml = (str = '') => str.replace(/<[\/\!] * * [^ < >] > / ig, ' '). The console log (removehtml (' < h1 > < ha ha ha ha ha ha ha < / h1 > ')) / / ha ha ha ha ha ha haCopy the code