精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

18 個基本 JavaScript 方法代碼片段

開發 前端
在我們的日常開發過程中,我們經常使用許多常見的 JavaScript 代碼片段,例如復制內容或從 URL 中檢索特定參數。

在我們的日常開發過程中,我們經常使用許多常見的 JavaScript 代碼片段,例如復制內容或從 URL 中檢索特定參數。

這些代碼片段都有固定的實現,方便開發,今天我們來了解一下7個常用的代碼片段。

1、函數節流

/** Function throttling timer version */
function throttle(callback: Function, delay: number) {
   let timer: number | null
   return function () {
     if (timer) return
     const args = arguments //Use closure to save parameter array
     timer = setTimeout(() => {
       callback.apply(null, args)
       timer = null
     }, delay)
   }
}

2、URL 解碼和編碼

/** Encode URL */
function encodeURL(url: string, isComponent = true): string {
   return isComponent ? encodeURIComponent(url) : encodeURI(url)
}


/** Decode URL */
function decodeURL(url: string, isComponent = true): string {
   return isComponent ? decodeURIComponent(url) : decodeURI(url)
}

3、使用JavaScript 獲取全局 CSS 變量

/**
 * @description Use JS to get global css variables
 * @param cssVariableName variable name
 * @returns {string} variable value
*/
function getCssVariableValue(cssVariableName: string): string {
   return getComputedStyle(document.documentElement).getPropertyValue(cssVariableName)
}

4、使用 JS 設置全局 CSS 變量

/**
  * @description Set global CSS variables with JS
  * @param {string} cssVariableName variable name
  * @param {string} cssVariableValue variable value
  */
function setCssVariableValue(cssVariableName: string, cssVariableValue: string): void {
   document.documentElement.style.setProperty(cssVariableName, cssVariableValue)
}

5、清除所有 cookies 

/**
 * @description clear all cookies
 */
function clearCookie(): void {
   const keyList = document.cookie.match(/[^ =;]+(?=\=)/g) as string[] | null
   keyList && keyList.forEach(key => (document.cookie = `${key}=0;path=/;expires=${new Date(0).toUTCString()}`))
}

6、清除所有項目緩存

/**
 * @description Clear all project caches
 */
function clearCache(): void {
  window.localStorage.clear()
  window.sessionStorage.clear()
  const keyList = document.cookie.match(/[^ =;]+(?=\=)/g) as string[] | null
  keyList && keyList.forEach(key => (document.cookie = `${key}=0;path=/;expires=${new Date(0).toUTCString()}`))
}

7、通過名稱獲取 URL 查詢參數 

/**
  * @description Get URL query parameters by name
  * @param {string} key The key of the query parameter that needs to be obtained
  * @param {string} url The link that needs to be parsed, the default is window.location.href
  * @returns {string | null} obtained value corresponding to key
  */
function getQueryByName(key, url = window.location.href) {
   const queryNameRegExp = new RegExp(`[?&]${key}=([^&]*)(?:&|$)`)
   const queryNameMatch = url.match(queryNameRegExp)
   return queryNameMatch ? decodeURIComponent(queryNameMatch[1]) : null
}

8、登錄頁面時間前綴

/**
  * @description time prefix of login page
  * @returns {string} time prefix
  */
function timeFix(): string {
   const time = new Date()
   const hour = time.getHours()
   return hour < 9 ? 'Good morning' : hour <= 11 ? 'Good morning' : hour <= 13 ? 'Good afternoon' : hour < 20 ? 'Good afternoon' : 'Good evening'
}

9、登錄頁面上的歡迎信息

/**
  * @description Welcome message on the login page
  * @returns {string} random welcome message
  */
function welcome(): string {
   const list = ['Long time no see, I miss you so much! ', 'Wait until the stars go to sleep before I miss you', 'We are open today']
   return list[Math.floor(Math.random() * list.length)]
}

10、遞歸深層復制

/**
  * @description Make a deep copy of the incoming data and return it
  * @param {any} source data source
  * @returns {any} copied data
  */
function deepClone(source: any): any {
   if (!source || typeof source !== 'object') return source
   if (source instanceof Date) return new Date(source)
   if (source instanceof RegExp) return new RegExp(source)
   const target = Array.isArray(source) ? ([] as Record<any, any>) : ({} as Record<any, any>)
   for (const key in source) target[key] = typeof source[key] === 'object' ? deepClone(source[key]) : source[key]
   return target
}

11、隨機生成一個 UUID 

/**
  * @description Randomly generate a UUID
  * @returns {string} generated uuid
  */
function getRandomUUID(): string {
   const tempURL = URL.createObjectURL(new Blob())
   const uuidStr = tempURL.toString()
   const separator = uuidStr.includes('/') ? '/' : ':'
   URL.revokeObjectURL(tempURL)
   return uuidStr.substring(uuidStr.lastIndexOf(separator) + 1)
}


function getRandomUUID(): string {
   const fn = (): string => (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)
   return fn() + fn() + '-' + fn() + '-' + fn() + '-' + fn() + '-' + fn() + fn() + fn()
}

12、隨機布爾值

/**
  * @description random boolean value
  * @returns {boolean} true | false
  */
function getRandomBoolean(): boolean {
   return Math.random() > 0.5
}

13、反轉字符串

/**
  * @description reverse string
  * @param {string} str string
  * @returns {string} reversed string
  */
function reverseString(str: string): string {
   return str.split('').reverse().join('')
}

14、隨機生成十六進制顏色

/**
  * @description Randomly generates a color string in Hex format
  * @returns {string} Color string in Hex format
  */
function getRandomHexColor(): string {
   return `#${Math.floor(Math.random() * 0xffffff).toString(16)}`
}

15、獲取變量的真實類型

/**
  * @description Get the real type of the variable
  * @param {any} variable variable of any type
  * @returns {string} variable type
  */
function getRawType(variable: any): string {
   return Object.prototype.toString.call(variable).split(' ')[1].replace(']', '').toLowerCase()
}

16、將文本復制到剪貼板

/**
  * @description Copy text to clipboard
  * @param {string} text The copied text
  */
function copyText(text: string): void {
   // Whether to support navigator.clipboard attribute
   const isClipboardApiSupported = window.navigator && window.navigator.clipboard
   if (isClipboardApiSupported) {
     window.navigator.clipboard.writeText(text)
   } else {
     const textarea = document.createElement('textarea')
     textarea.readOnly = true
     textarea.value = text
     textarea.style.position = 'absolute'
     textarea.style.top = '-9999px'
     textarea.style.left = '-9999px'
     document.body.appendChild(textarea)
     textarea.select()
     document.execCommand('copy')
     textarea.remove()
   }
}

17、滾動到頂部

/**
  * @description scroll to top
  */
function scrollToTop(element: HTMLElement): void {
   element.scrollIntoView({ behavior: 'smooth', block: 'start' })
}

18、對象通用方法

const obj = { a: 1, b: 2, c: 3, d: 4 }
//Object.keys()
// Will return an array consisting of the given object's own enumerable properties
Object.keys(obj) // ['a', 'b', 'c', 'd']
//Object.values()
// Returns an array of all enumerable property values of the given object itself
Object.values(obj) // [1, 2, 3, 4]
//Object.entries()
// Returns an array of key-value pairs for the given object's own enumerable properties
Object.entries(obj) // [['a', 1], ['b', 2], ['c', 3], ['d', 4]]
//Object.fromEntries()
//Convert the list of key-value pairs into an object, which is the reverse operation of Object.entries()
Object.fromEntries( [['a', 1], ['b', 2]]) // { a: 1, b: 2 }
// hasOwnProperty()
// Returns a Boolean value indicating whether the object has the specified attribute in its own properties (that is, whether it has the specified key)
obj.hasOwnProperty('a') // true
obj.hasOwnProperty('fff') // false
//Object.assign()
// Used to copy the values of all enumerable properties from one or more source objects to the target object. It will return the target object.
const target = { a: 1, b: 2 }
const source = { b: 4, c: 5 }
const result = Object.assign(target, source) // { ...target, ...source } has the same effect
console.log(result) // {a: 1, b: 4, c: 5}

總結

以上就是我今天想與你分享的全部內容,希望這些內容對你有所幫助。

責任編輯:華軒 來源: web前端開發
相關推薦

2023-07-17 15:28:03

JavaScrip開發

2023-09-03 16:46:09

Pandas工具

2011-07-11 10:16:07

JavaScript

2023-05-22 15:53:06

JavaScrip代碼素材

2023-10-10 16:16:05

JavaScrip開發

2023-10-09 14:48:06

2023-12-26 14:28:08

JavaScript開發

2024-01-04 16:46:58

JavaScript開發

2023-06-16 16:34:25

JavaScripWeb 開發

2023-11-03 16:02:00

JavaScript開發

2021-09-17 15:31:47

代碼JavaScript數組

2023-06-13 15:15:02

JavaScript前端編程語言

2021-09-03 10:08:53

JavaScript開發 代碼

2024-08-02 17:19:36

2024-01-30 08:54:05

JavaScript技巧代碼

2020-12-07 08:01:59

JavaScript入門技巧

2019-11-14 15:30:34

JavaScript代碼前端

2011-11-23 09:21:43

jQuery

2023-10-12 15:02:21

PythonPandas數據分析

2022-06-08 08:55:15

JavaScript代碼前端
點贊
收藏

51CTO技術棧公眾號

一区二区三区中文字幕在线观看| 亚洲成人精选| 色综合久久88色综合天天| 色涩成人影视在线播放| 国产丝袜在线视频| 国产欧美精品久久| 日韩在线视频中文字幕| 激情小说欧美色图| 99999精品| 九色视频在线观看免费播放| 久久成人免费电影| 亚洲高清免费观看| 久久久久久国产精品一区| 亚洲天堂中文网| 一本久久综合| 久久综合国产精品台湾中文娱乐网| 中国黄色片视频| 国产成人午夜性a一级毛片| 亚洲国产色一区| 亚洲蜜桃av| 日日夜夜精品免费| 国产福利一区二区三区视频在线| 日产精品久久久一区二区福利| 久热这里有精品| 日韩在线观看| 在线观看视频99| a天堂视频在线观看| 精品国产亚洲一区二区在线观看 | 欧一区二区三区| 欧美在线免费视屏| 欧美 国产 日本| 阿v视频在线| 亚洲精品免费播放| 最新av在线免费观看| 超碰免费在线| 国产日韩av一区| 免费在线观看91| 午夜视频福利在线| www.成人在线| 国语精品免费视频| 内射后入在线观看一区| 国产精品91xxx| 91久久久久久久一区二区| 中文字幕+乱码+中文| 日韩精品久久理论片| 热久久这里只有| 日韩 欧美 综合| 一区在线视频观看| 久久久噜噜噜久噜久久| 国产一级在线播放| 在线日韩中文| 97久久精品人人澡人人爽缅北| 欧美人与禽zozzo禽性配| 亚洲国产精品久久久久蝴蝶传媒| 久久九九免费视频| 精品欧美一区二区久久久久| 午夜日韩电影| 欧美极品美女视频网站在线观看免费| 欧美日韩在线观看免费| 亚洲一级黄色| 91产国在线观看动作片喷水| 亚洲午夜18毛片在线看| 日韩电影在线一区二区| 国产精品久久久久久久久久尿| 在线免费一区二区| 精品一区二区三区不卡| 亚洲一区二区三区四区视频| 亚洲精品久久久久久久久久久久久久 | 欧美xxav| 久久精品国产99国产精品澳门| а天堂中文在线资源| 一区二区三区四区日韩| 欧美极品在线视频| 色屁屁影院www国产高清麻豆| 日韩影院免费视频| 亚洲曰本av电影| 人妻视频一区二区三区| 久久精品亚洲精品国产欧美kt∨| 亚洲高清视频一区二区| 色在线视频网| 色呦呦网站一区| 国产又黄又猛的视频| 高清精品xnxxcom| 亚洲欧美日韩网| 四虎地址8848| 亚洲麻豆av| 国产精品一区专区欧美日韩| 亚洲美女性生活| 国产欧美中文在线| 波多野结衣 作品| 国产不卡网站| 日韩视频国产视频| 日韩乱码人妻无码中文字幕久久| 国产亚洲欧美日韩在线观看一区二区 | 精品一区二区免费看| 国产精品入口免费| 91亚洲欧美| 亚洲国产成人91porn| 丁香婷婷激情网| 哺乳挤奶一区二区三区免费看| 99国产成+人+综合+亚洲欧美| 欧美成人全部免费| 欧美h在线观看| 国产成人午夜精品影院观看视频 | 亚洲美女高潮久久久| 国产欧美日韩免费观看| 欧美国产精品日韩| 一级特黄aaaaaa大片| 久久伊人中文字幕| 成人免费在线网| 国产精品亲子伦av一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 欧美亚洲成人xxx| 天海翼一区二区| 国产精品一区二区久激情瑜伽 | 亚洲色图88| 日韩av免费看网站| 三级在线观看网站| 一区二区免费在线| 古装做爰无遮挡三级聊斋艳谭| 欧美精选一区二区三区| 欧美在线观看日本一区| 欧美熟妇交换久久久久久分类 | 亚洲色图制服诱惑| 日本日本19xxxⅹhd乱影响| 日韩精品视频中文字幕| 色婷婷av一区二区三区在线观看| 亚洲久久在线观看| 成人a免费在线看| 成人在线免费观看视频网站| 在线欧美激情| 日韩中文字幕在线观看| 国产精品高清无码| 国产欧美综合色| 天堂在线资源视频| 精品国产不卡| 午夜欧美大尺度福利影院在线看| 九九爱精品视频| 黑人久久a级毛片免费观看| 成年无码av片在线| 国产精品无码专区av免费播放| 国产精品免费视频网站| 天天操天天摸天天爽| jlzzjlzz亚洲女人| 国产精品成人免费电影| 国产视频二区在线观看| 色婷婷久久久久swag精品| 性久久久久久久久久| 美女网站久久| 色女人综合av| 成人国产精品久久| 一本色道久久综合亚洲精品不| 国产成人综合一区二区三区| 欧美一区二区视频| 91搞黄在线观看| 91禁男男在线观看| 激情深爱一区二区| 女人床在线观看| 一区二区三区免费在线看| 欧美极品少妇xxxxⅹ喷水| 天天干天天爱天天操| 欧美午夜片欧美片在线观看| 欧美偷拍一区二区三区| 久久国产剧场电影| 992tv成人免费观看| 加勒比av在线播放| 韩国亚洲精品| 精品在线视频一区二区三区| 在线成人av观看| 在线性视频日韩欧美| 国产欧美综合视频| 亚洲成人av资源| 第一次破处视频| 国产一区免费电影| 亚洲中文字幕无码av永久| 国产伦一区二区三区| 国产日韩欧美在线观看| 久久av一区二区三区亚洲| 亚洲羞羞网站| 精品一区二区三区三区| 欧美性受xxx黑人xyx性爽| 亚洲欧美另类久久久精品2019| 少妇伦子伦精品无吗| 久久国产精品久久w女人spa| 一级做a爰片久久| 国产精品色在线网站| 国产精品国产福利国产秒拍| 人人澡人人添人人爽一区二区| 亚洲精品按摩视频| 一级黄色片在线观看| 亚洲不卡一区二区三区| 欧美老女人性生活视频| 成人激情校园春色| 少妇一级淫免费放| 亚洲黄页一区| 一区二区三区偷拍| 欧美丝袜足交| 91手机在线播放| 日韩一区二区三区免费视频| 久久理论片午夜琪琪电影网| 在线视频三区| 精品一区二区三区三区| 精品久久久无码中文字幕| 日本韩国欧美在线| 日韩 国产 在线| 亚洲人成亚洲人成在线观看图片| 六月婷婷七月丁香| 成人免费看黄yyy456| 欧美一级xxxx| 日韩电影网1区2区| 日韩av三级在线| 国内精品亚洲| 久久久久亚洲av无码专区喷水| av一区二区在线播放| 精品视频一区二区| 99久久人爽人人添人人澡| 91精品啪aⅴ在线观看国产| 日本综合字幕| 91高清视频免费| 91精品国产黑色瑜伽裤| 久久影视免费观看 | 在线观看国产欧美| 无码国精品一区二区免费蜜桃| 日韩一区二区在线播放| 91精品在线视频观看| 欧美亚洲一区三区| 91视频在线视频| 色综合天天综合网天天狠天天| 国产第一页在线播放| 亚洲精品国产无天堂网2021| 麻豆网址在线观看| 国产精品久久久久桃色tv| 日韩女同一区二区三区| 日本一区二区高清| 国产探花视频在线播放| 国产亚洲成aⅴ人片在线观看| 欧洲一级黄色片| 91在线丨porny丨国产| 亚洲天堂2024| 91蝌蚪国产九色| 日本黄色特级片| 久久久99精品免费观看不卡| 男女做爰猛烈刺激| 国产日韩欧美高清在线| 少妇无套高潮一二三区| 中文字幕不卡三区| 午夜激情福利电影| 亚洲日本乱码在线观看| 欧美日韩在线观看成人| 亚洲观看高清完整版在线观看 | 国产熟妇久久777777| 久久九九久久九九| 精品人体无码一区二区三区| 中文字幕一区二区三区色视频| 99自拍视频在线| 亚洲精品第一国产综合野| 麻豆chinese极品少妇| 亚洲成人一区在线| 一本一道无码中文字幕精品热| 一本色道久久综合亚洲精品按摩| 日韩欧美国产另类| 91精品国产综合久久香蕉麻豆| 亚洲av无码片一区二区三区| 精品国产第一区二区三区观看体验| 黄色一级a毛片| 精品一区精品二区| 爱久久·www| 欧美成人全部免费| 精精国产xxxx视频在线野外| 国产91在线视频| 国产va免费精品观看精品| 成人蜜桃视频| 国产精品密蕾丝视频下载 | h网站久久久| 26uuu国产精品视频| 亚洲国产尤物| 99一区二区| 国产99久久| 黄色污污在线观看| 亚洲一区视频| 日本高清一区二区视频| 成人深夜在线观看| 欧美波霸videosex极品| 亚洲精品国产高清久久伦理二区| 国产特黄大片aaaa毛片| 欧美日韩一区二区三区免费看| 国产黄色一区二区| 国产亚洲成av人片在线观看桃| 182tv在线播放| 国产精品91久久| 91欧美日韩在线| 亚洲一区二区三区乱码| 亚洲黄色成人| 一级 黄 色 片一| 国产欧美综合在线观看第十页| 国产一级在线观看视频| 欧美亚一区二区| 日本免费网站在线观看| 最近2019年日本中文免费字幕| 91探花在线观看| 亚洲free嫩bbb| 成人国产精品一级毛片视频| 欧美精品一区二区三区三州| 狠狠色综合色综合网络| 一区二区精品免费| 亚洲va韩国va欧美va| 国产精品-色哟哟| 亚洲午夜久久久久久久| av日韩中文| 99久久精品久久久久久ai换脸| 视频国产一区| 欧美三级一级片| 成人激情免费网站| 一区二区视频免费看| 欧美日韩综合在线| 飘雪影视在线观看免费观看| 欧美激情xxxx性bbbb| 91麻豆精品一二三区在线| 视频一区二区在线观看| 久久aⅴ国产紧身牛仔裤| 中文字幕一区二区人妻电影丶| 亚洲精品欧美二区三区中文字幕| 日韩美一区二区| 精品性高朝久久久久久久| 久久av色综合| 国产91aaa| 亚洲国产高清一区二区三区| 日本人妻一区二区三区| 亚洲另类色综合网站| 91亚洲视频在线观看| 中文字幕在线看视频国产欧美在线看完整| 中文字幕在线直播| 欧美日本国产精品| 久久精品亚洲| 少妇毛片一区二区三区| 欧美日韩亚洲国产一区| 天天爱天天干天天操| 欧美激情va永久在线播放| 欧美2区3区4区| 狠狠精品干练久久久无码中文字幕 | 亚洲精品承认| 国产色婷婷国产综合在线理论片a| 欧美理论视频| 伊人影院综合在线| 中文字幕在线观看一区二区| 国产精品久久久久久无人区| 久久精品美女视频网站| 不卡精品视频| 欧美大黑帍在线播放| 成人sese在线| 一区二区三区福利视频| 亚洲丝袜一区在线| 日日夜夜一区| 男人添女人下部视频免费| 成人午夜免费视频| 中文字幕第四页| 国产一区二区三区高清在线观看| 美女色狠狠久久| 日本女人高潮视频| 粉嫩欧美一区二区三区高清影视| 看片网址国产福利av中文字幕| 精品亚洲精品福利线在观看| av成人免费看| 50度灰在线观看| 99久久99久久精品免费观看| 夜夜躁日日躁狠狠久久av| 日韩一区视频在线| 97超碰成人| 久久久久久香蕉| 一区视频在线播放| 刘亦菲久久免费一区二区| 欧美一级视频一区二区| 欧美电影三区| 欧产日产国产精品98| 欧洲生活片亚洲生活在线观看| 国产视频在线播放| 国语精品中文字幕| 美女视频网站久久| 久久久久久久久久一区二区三区| 日韩精品高清在线| 亚洲午夜国产成人| 18岁网站在线观看| 亚洲日本乱码在线观看| 青青草视频免费在线观看| 成人h视频在线| 亚洲影视在线| 国产美女久久久久久| 日韩精品亚洲精品| 精品国产欧美| 男人天堂成人在线| 亚洲一区二区三区在线看| 超碰免费97在线观看| 精品欧美一区二区在线观看视频| 麻豆专区一区二区三区四区五区| 久久久全国免费视频| 影音先锋日韩有码| 日韩三级av| 亚洲国产综合av| 欧美日韩一区二区三区免费看| 僵尸再翻生在线观看免费国语|