15條JS高效技巧

2021-10-09 02:52:56 字數 4156 閱讀 4518

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...

高效學習技巧

如何記住學過的東西 這裡第二點是關鍵 人類的大腦不善於處理 新 資訊,但是大腦擅長通過整合提煉舊知識來推演新知識.但是,新和舊的知識要有較多的共同點,至少要比區別要多.如何教別人學習 同樣是以上的兩個關鍵點.但是要注重對其著重的進行心理模型的形成進行引導.從簡單的模擬開始,把新舊知識聯絡起來.建立乙...