自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

八個實用的 NPM 技術(shù)

開發(fā) 前端
這篇文章,跟大家分享8個NPM的技術(shù),希望這些小技巧能夠幫助到你,我們現(xiàn)在就開始吧。

這篇文章,跟大家分享8個NPM的技術(shù),希望這些小技巧能夠幫助到你,我們現(xiàn)在就開始吧。

1.復(fù)制內(nèi)容到剪貼板

幾乎所有的網(wǎng)站都有存在,因為它可以讓用戶更方便地使用功能。但令人難以置信的是,只需要 6 行有效代碼就可以做到這一點(diǎn)。

const copyToClipboard = (content) => {
const textarea = document.createElement("textarea")

textarea.value = content
document.body.appendChild(textarea)
textarea.select()
document.execCommand("Copy")
textarea.remove()
}

2.比較應(yīng)用程序版本

我經(jīng)常遇到這個要求。如果某個APP的版本大于x.y.z,則執(zhí)行A邏輯,否則執(zhí)行B邏輯。

其實就是比較app版本的問題。

const compareVersion = (version1, version2) => {
const arr1 = version1.split(".")
const arr2 = version2.split(".")
const len1 = arr1.length
const len2 = arr2.length
const minLength = Math.min(len1, len2)

for (let i = 0; i < minLength; i++) {
let diff = parseInt(arr1[i], 10) - parseInt(arr2[i], 10)
if (diff !== 0) return diff
}
return len1 < len2 ? -1 : len1 > len2 ? 1 : 0
}

const v1 = '2.0.1'
const v2 = '2.1.0'
const v3 = '2.1.0'

console.log(compareVersion(v1, v2)) // -1 V1 is less than V2
console.log(compareVersion(v2, v1)) // 1 V2 is greater than v1
console.log(compareVersion(v2, v3)) // 0 V2 equals V3

3.使用URLSearchParams獲取URL的搜索參數(shù)

那是前端開發(fā)人員經(jīng)常做的事情,我們通常使用正則表達(dá)式來做,但現(xiàn)在我們有一個更簡單的方法......

const getQueryByName = (name) => {
const query = new URLSearchParams(location.search)
return decodeURIComponent(query.get(name))
}
// url: https://medium.com/?name=fatfish&age=100
const name = getQueryByName('name') // fatfish
const age = getQueryByName('age') // 100
const gender = getQueryByName('gender') // null

4.平滑滾動到頁面頂部

如何讓頁面平滑滾動到頂部?

Codepen地址:https://codepen.io/qianlong/pen/NWYpqZq

const scrollToTop = () => {
const c = document.documentElement.scrollTop || document.body.scrollTop

if (c > 0) {
window.requestAnimationFrame(scrollToTop)
window.scrollTo(0, c - c / 8)
}
}

5.獲取當(dāng)前頁面的滾動距離

有時候不需要平滑滾動到頂部,只需要獲取滾動條滾動到多遠(yuǎn)就可以了。


const getScrollPosition = (el = window) => ({
x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,
y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop,
})

getScrollPosition() // { x: 0, y: 215 }

6.判斷當(dāng)前設(shè)備是Android還是iOS

let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1
let isIOS = !!u.match(/\(i[^]+( U)? CPU.+Mac OS X/)

if (isIOS) {
return 0
} else if (isAndroid) {
return 1
} else {
return 2
}
}

getOSType() // 0

7.貨幣格式化

貨幣格式化的方式有很多種,比如這兩種方式。

第一種方式:?

const formatMoney = (money) => {
return money.replace(new RegExp(`(?!^)(?=(\\d{3})+${money.includes('.') ? '\\.' : '$'})`, 'g'), ',')
}

formatMoney('123456789') // '123,456,789'
formatMoney('123456789.123') // '123,456,789.123'
formatMoney('123') // '123'

第二種方式:?

正則表達(dá)式讓我們太頭疼了,不是嗎?

所以我們需要找到一種更簡單的方法來格式化貨幣。

const formatMoney = (money) => {
return money.toLocaleString()
}

formatMoney(123456789) // '123,456,789'
formatMoney(123456789.123) // '123,456,789.123'
formatMoney(123) // '123'

我喜歡這種方式,它簡單易懂。

8.進(jìn)入和退出全屏

?如何將網(wǎng)頁設(shè)置為全屏模式?我在 Codepen 中寫了一個小例子,Codepen:https://codepen.io/qianlong/pen/wvmJdXb

你可以試試。?


// Enter full screen
function fullScreen() {
let el = document.documentElement
let rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen
//typeof rfs != "undefined" && rfs
if (rfs) {
rfs.call(el)
} else if (typeof window.ActiveXObject !== "undefined") {
let wscript = new ActiveXObject("WScript.Shell")
if (wscript != null) {
wscript.SendKeys("{F11}")
}
}
}
// Exit full screen
function exitScreen() {
let el = document
let cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen
//typeof cfs != "undefined" && cfs
if (cfs) {
cfs.call(el)
} else if (typeof window.ActiveXObject !== "undefined") {
let wscript = new ActiveXObject("WScript.Shell")
if (wscript != null) {
wscript.SendKeys("{F11}")
}
}
}
責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2022-03-18 21:27:36

Python無代碼

2024-08-27 12:18:23

函數(shù)Python

2024-09-30 13:14:01

2024-03-27 14:06:58

Python代碼開發(fā)

2022-12-16 17:01:15

Web API開發(fā)

2010-09-01 13:55:14

CSS

2022-02-11 09:00:00

技術(shù)債務(wù)數(shù)據(jù)工具

2022-08-11 09:00:31

Audio APIWeb

2024-12-27 08:43:17

2023-02-22 14:50:59

技術(shù)AI

2011-01-13 15:37:25

vSphere備份

2025-01-08 08:53:05

2021-12-11 23:13:16

Python語言技巧

2017-04-20 12:51:28

2017-01-05 09:59:45

2012-10-29 11:01:17

2020-03-30 09:58:16

IO技術(shù)債務(wù)

2025-02-21 08:30:00

JavaScripES代碼

2022-02-10 10:23:48

軟件開發(fā)商技術(shù)債務(wù)記錄數(shù)據(jù)

2024-09-24 17:54:26

Python開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號