1、延遲函式delay
const delay = ms =
> new promise((resolve, reject)
=> settimeout(resolve, ms))
const getdata = status =
> new promise((resolve, reject)
=>
) const getres = async (data)
=>
catch (error)
} getres(true) // 隔了1秒
2、分割指定長度的元素陣列
const listchunk =
(list, size = 1, cachelist =
)=>
while
(tmp.length)
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, 8, 9], -1)) // [
]
3、獲取陣列交集
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]
)) // [
]
4、函式柯里化
const curring = fn =
>
= fn
const curried =
(...args)
=>
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]
5、字串前面空格去除與替換
const trimstart = str =
> str.replace(new regexp(
'^([\\s]*)(.*)$'
), '$2'
) console.log(trimstart(
' abc '
)) // abc
console.log(trimstart(
'123 '
)) // 123
6、字串後面空格去除與替換
const trimend = str =
> str.replace(new regexp(
'^(.*?)([\\s]*)$'
), '$1'
) console.log(trimend(
' abc '
)) // abc
console.log(trimend(
'123 '
)) // 123
7、獲取當前子元素是其父元素下子元素的排位
const getindex = el =
>
let index = 0
dowhile
(el = el.previouselementsibling)
;return index
}
8、獲取當前元素相對於document的偏移量
const getoffset = el =
>
= el.getboundingclientrect(
) const
= document.body
return
}
9、獲取元素型別
const datatype = obj =
> object.prototype.tostring.call(obj).replace(/^\[object (.+)\]$/, '$1'
).tolowercase(
);
10、判斷是否是移動端
const ismobile =()
=>
'ontouchstart'
in window
11、fade動畫
const fade =
(el, type
='in')}
tick(
)}
12、將指定格式的字串解析為日期字串
const datapattern =
(str, format
='-')=
>
const datereg = new regexp(
`^(\\d
)$(\\d
)$(\\d
)$`)
const [, month, day, year]
= datereg.exec(str)
return new date(
`$, $ $`)
} console.log(datapattern(
'12-25-1995'
)) // mon dec 25 1995 00:00:00 gmt+0800 (中國標準時間)
13、禁止網頁複製貼上
const html = document.queryselector(
'html'
) html.oncopy =()
=>
false
html.onpaste =()
=>
false
14、input框限制只能輸入中文
const input = document.queryselector(
'input[type="text"]'
) const cleartext = target =
>
= target
target.value = value.replace(/[^\u4e00-\u9fa5]/g, '')}
input.onfocus =()
=>
input.onkeyup =()
=>
input.onblur =()
=>
input.oninput =()
=>
15、去除字串中的html**
const removehtml =
(str ='')
=> str.replace(/<
[\/\!
]*[^<
>
]*>/ig, ''
) console.log(removehtml(
'')) // 哈哈哈哈《呵呵呵
15條技巧提高你的寫作技巧
想成為下乙個海明威嗎?或許只是想在校刊有自己的豆腐塊,讓自己的部落格富有動人文字?那麼,你需要先把自己的文筆犀利起來。而且成為一位優秀的作家並不是一件容易的事情。你需要艱苦卓絕的努力,但是這些支出的努力是值得的。只要你從今天做起,一點一滴的努力,你一定可以成為乙個優秀作家。就我個人而言,我已經寫了1...
python高效程式設計技巧10(如何讀寫json)
usr bin env python coding utf 8 import json 使用json的dumps函式,可以將python的物件轉化為json s1 json str json.dumps s1 print json str 使用json的loads函式,將json字串轉換為乙個pyt...
高效學習技巧
如何記住學過的東西 這裡第二點是關鍵 人類的大腦不善於處理 新 資訊,但是大腦擅長通過整合提煉舊知識來推演新知識.但是,新和舊的知識要有較多的共同點,至少要比區別要多.如何教別人學習 同樣是以上的兩個關鍵點.但是要注重對其著重的進行心理模型的形成進行引導.從簡單的模擬開始,把新舊知識聯絡起來.建立乙...