狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

11 種有用的 JavaScript 技巧

admin
2024年10月13日 22:37 本文熱度 399

?

今天這篇文章,我想與你分享 11個有用的JavaScript功能,它們將極大地提高我們的工作效率。

1.生成隨機顏色的兩種方式

1).生成RandomHexColor

const generateRandomHexColor = () => {  return `#${Math.floor(Math.random() * 0xffffff).toString(16).padStart(6, '0')}`}
generateRandomHexColor() // #a8277cgenerateRandomHexColor() // #09c20cgenerateRandomHexColor() // #dbc319

2).生成隨機RGBA

const generateRandomRGBA = () => {  const r = Math.floor(Math.random() * 256)  const g = Math.floor(Math.random() * 256)  const b = Math.floor(Math.random() * 256)  const a = Math.random().toFixed(2)
  return `rgba(${[ r, g, b, a ].join(',')})`}generateRandomRGBA() // rgba(242,183,70,0.21)generateRandomRGBA() // rgba(65,171,97,0.72)generateRandomRGBA() // rgba(241,74,149,0.33)

2.復(fù)制內(nèi)容到剪貼板的兩種方式

方式1

const copyToClipboard = (text) => navigator.clipboard && navigator.clipboard.writeText && navigator.clipboard.writeText(text)
copyToClipboard('hello medium')

方式2

const copyToClipboard = (content) => {  const textarea = document.createElement("textarea")
 textarea.value = content  document.body.appendChild(textarea)  textarea.select()  document.execCommand("Copy")  textarea.remove()}
copyToClipboard('hello medium')?

3. 獲取URL中的查詢參數(shù)

const parseQuery = (name) => {  return new URL(window.location.href).searchParams.get(name)}
// https://medium.com?name=fatfish&age=100parseQuery('name') // fatfishparseQuery('age') // 100parseQuery('sex') // null

4.Please wait for a while

const timeout = (timeout) => new Promise((rs) => setTimeout(rs, timeout))

5.打亂數(shù)組

const shuffle = (array) => array.sort(() => 0.5 - Math.random())
shuffle([ 1, -1, 2, 3, 0, -4 ]) // [2, -1, -4, 1, 3, 0]shuffle([ 1, -1, 2, 3, 0, -4 ]) // [3, 2, -1, -4, 0, 1]

6. 深拷貝一個對象

如何深拷貝對象?使用 StructuredClone 使其變得非常容易。

const obj = {  name: 'fatfish',  node: {    name: 'medium',    node: {      name: 'blog'    }  }}
const cloneObj = structuredClone(obj)cloneObj.name = '1111'cloneObj.node.name = '22222'console.log(cloneObj)/*{    "name": "1111",    "node": {        "name": "22222",        "node": {            "name": "blog"        }    }}*/console.log(obj)/*{    "name": "fatfish",    "node": {        "name": "medium",        "node": {            "name": "blog"        }    }}*/

7.確保元素在可見區(qū)域內(nèi)

前段時間,我在工作中遇到了一個非常麻煩的需求,感謝IntersectionObserver,我可以輕松檢測某個元素是否在可見區(qū)域內(nèi)。

const isElInViewport = (el) => {  return new Promise(function(resolve) {    const observer = new IntersectionObserver((entries) => {      entries.forEach((entry) => {        if (entry.target === el) {          resolve(entry.isIntersecting)        }      })    })
   observer.observe(el)  })}const inView = await isElInViewport(document.body)console.log(inView) // true

8.獲取當(dāng)前選中的文本

許多翻譯網(wǎng)站都有此功能,你可以選擇文本并將其翻譯成另一個國家的語言。

const getSelectedContent = () => window.getSelection().toString()

9. 獲取所有瀏覽器cookie

非常方便的幫助我們獲取瀏覽器中的cookie信息

const getAllCookies = () => {  return document.cookie.split(";").reduce(function(cookieObj, cookie) {    const cookieParts = cookie.split("=")    cookieObj[cookieParts[0].trim()] = cookieParts[1].trim()    return cookieObj  }, {})}
getAllCookies() /*{    "_ga": "GA1.2.496117981.1644504126",    "lightstep_guid/medium-web": "bca615c0c0287eaa",    "tz": "-480",    "nonce": "uNIhvQRF",    "OUTFOX_SEARCH_USER_ID_NCOO": "989240404.2375598",    "sz": "2560",    "pr": "1",    "_dd_s": "rum"}*/

10.刪除指定名稱的cookie

我的朋友,我們只能刪除沒有 HttpOnly 標(biāo)志的 cookie。

const clearCookie = (name) => {  document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";}
clearCookie('_ga') // _ga is removed from the cookie

11.將多維數(shù)組轉(zhuǎn)換為一維數(shù)組

雖然,我們通過遞歸函數(shù)將多維數(shù)組轉(zhuǎn)換為一維數(shù)組,但是有一個非常簡單的方法可以解決這個問題。

const flatten = (array) => {  return array.reduce((result, it) => {    return result.concat(Array.isArray(it) ? flatten(it) : it)  }, [])}
const arr = [  1,  [    2,    [      3,      [        4,        [          5,          [            6          ]        ]      ]    ]  ]]console.log(flatten(arr)) // [1, 2, 3, 4, 5, 6]

秘訣就是使用數(shù)組的扁平化方法。

const arr = [  1,  [    2,    [      3,      [        4,        [          5,          [            6          ]        ]      ]    ]  ]]console.log(arr.flat(Infinity)) // [1, 2, 3, 4, 5, 6]
總結(jié)
以上就是我今天想與你分享的11個有用的技巧,希望對你有所幫助。
最后,感謝您的閱讀,祝編程愉快!


該文章在 2024/10/14 11:05:48 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved