精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

免费永久网站黄欧美| 国产精品videossex| 国产精品久久久久久户外露出 | 在线不卡一区二区| 国产精品h视频| 全部免费毛片在线播放一个| 久久精品毛片| 另类视频在线观看| 91av在线免费| **欧美日韩在线| 精品国产福利视频| 在线不卡日本| 深夜福利在线看| 另类小说一区二区三区| 欧美国产极速在线| 微拍福利一区二区| 日本在线一区二区三区| 色婷婷久久久亚洲一区二区三区| 国产免费一区二区三区四在线播放| 天天干天天操av| 久久超碰97人人做人人爱| 亚洲3p在线观看| 久久久久久视频| 国产亚洲一区| 日韩av在线网| 先锋资源在线视频| 成人国产一区| 色狠狠综合天天综合综合| 日韩精品一区二区在线视频| 五月婷婷六月丁香| 国产精品亚洲综合一区在线观看| 国产精品久久久久久久午夜| 国产成人在线免费视频| 欧美久久综合| 久久久999成人| 91精品国自产在线| 精品在线91| 日韩高清a**址| 人妻激情偷乱频一区二区三区| 亚洲高清影院| 欧美日韩性生活| 人人爽人人av| av在线一区不卡| 色哟哟一区二区| 欧美一区二区三区爽大粗免费| ririsao久久精品一区| 亚洲黄网站在线观看| 国产福利片一区二区| 91大神在线网站| 五月婷婷激情五月| 日韩pacopacomama| 黑人巨大精品欧美一区二区一视频| 国产精品igao激情视频| 老司机精品视频在线观看6| 欧美国产在线观看| 日本高清不卡三区| 国产露出视频在线观看| 国产欧美一区二区精品性色超碰| 欧美二区三区| 韩国三级av在线免费观看| 久久综合久久鬼色| 欧美aaaaa喷水| 男男激情在线| 亚洲国产成人在线| 亚洲欧洲精品在线观看| 日韩黄色影院| 依依成人精品视频| 91午夜在线观看| 成人ssswww在线播放| 亚洲尤物在线视频观看| 日本一区午夜艳熟免费| 女人让男人操自己视频在线观看| 色综合婷婷久久| 三级在线免费看| 在线免费成人| 亚洲精品一区二区三区99| 国产xxxxxxxxx| 国产免费av一区二区三区| 一个色综合导航| www深夜成人a√在线| 欧美日韩国产成人精品| 欧美在线视频a| 国产精品sm调教免费专区| 国产综合色产在线精品| 久久尤物视频| 色妞欧美日韩在线| 男人与禽猛交狂配| 亚洲国产99| 国产脚交av在线一区二区| 亚洲天堂国产精品| 高清不卡在线观看| 欧美一区二区三区四区在线观看地址 | 超碰国产在线| 怡红院av一区二区三区| 蜜臀av午夜一区二区三区| 亚洲二区av| 日韩精品极品在线观看播放免费视频| 一区二区伦理片| 欧美在线三级| 日本一区二区三区四区视频| 国产剧情精品在线| 久久一区二区三区国产精品| 视频一区二区视频| 亚洲天堂导航| 日韩三级在线观看| 免费人成又黄又爽又色| 欧美性久久久| 成人a在线视频| 五十路在线视频| 亚洲三级免费电影| 亚洲爆乳无码专区| 国产另类在线| 久久久精品国产网站| 丰满少妇xoxoxo视频| 国产精品亚洲综合一区在线观看| 日韩妆和欧美的一区二区| 日本一本在线免费福利| 欧美日本在线看| 国精产品一区二区三区| 在线精品观看| 亚洲一区二区三区四区视频| 国产精品99999| 亚洲国产精品久久人人爱| 中文字幕 日韩 欧美| 亚洲小说图片视频| 久久久久久久97| 国产女人18毛片水18精| 欧美国产精品久久| 可以在线看的黄色网址| 国产suv精品一区| 久久99精品视频一区97| 亚洲中文字幕在线观看| 国产欧美一区二区精品久导航 | 首页亚洲欧美制服丝腿| 国产区二精品视| 在线观看男女av免费网址| 欧美日本韩国一区二区三区视频| 性欧美13一14内谢| 老司机一区二区三区| 精品999在线观看| av免费不卡| 精品久久久久久综合日本欧美| 91视频免费在线看| 精品一区二区在线看| 亚洲一区二区三区午夜| 日本电影久久久| 色av中文字幕一区| 在线免费看毛片| 国产蜜臀av在线一区二区三区| 国产无套粉嫩白浆内谢的出处| 欧美一级二级三级视频| 2019中文在线观看| 五月婷婷伊人网| 欧美性生活大片免费观看网址| 国内精品久久99人妻无码| 亚洲在线日韩| 日韩欧美国产二区| 九九热这里有精品| 久久精品99国产精品酒店日本| 一区二区三区播放| 日韩久久一区二区| 亚洲怡红院在线| 亚洲综合色网| 91入口在线观看| 波多野结衣精品| 亚洲精品久久7777777| 欧美啪啪小视频| 国产校园另类小说区| 狠狠热免费视频| 999成人网| 国产精品日韩高清| 中文字幕一区久| 中文字幕亚洲精品| 国产人妖一区二区| 亚洲va欧美va国产va天堂影院| 精品影片一区二区入口| 爽好多水快深点欧美视频| 中文精品一区二区三区| 欧美经典影片视频网站| 97视频国产在线| 97视频精彩视频在线观看| 91精品国产综合久久精品性色| 久久久久久久福利| 久久久久久免费网| 一级在线免费视频| 国内自拍视频一区二区三区 | 欧美日韩影视| 欧美日韩亚洲综合在线| 国产盗摄x88av| 久久久99久久| 加勒比av中文字幕| 一区二区动漫| 手机成人av在线| 偷拍亚洲精品| 亚洲专区在线视频| 韩国成人动漫| 久久99国产综合精品女同| 免费一级毛片在线观看| 日韩一级免费一区| 波多野结衣理论片| 亚洲国产综合人成综合网站| 超碰人人人人人人人| www.亚洲免费av| 国产一区二区在线观看免费视频| 亚洲欧美日韩一区在线观看| 亚洲第一页在线视频| 国内黄色精品| 国产精品乱子乱xxxx| 亚洲免费一区| 国产不卡av在线| 99热99re6国产在线播放| 色阁综合伊人av| 亚洲 小说区 图片区 都市| 欧美男女性生活在线直播观看| 天天爽夜夜爽夜夜爽精品| 亚洲欧美日韩中文字幕一区二区三区 | 国产91在线|亚洲| 国产精品区在线| 美女视频一区免费观看| av网站大全免费| 天天射—综合中文网| 日本一区二区在线| 欧美日韩精品一区二区三区在线观看| 成人美女av在线直播| 91精品影视| 欧美在线一区二区视频| 岛国在线视频网站| 欧美激情一区二区久久久| 欧美18hd| 色阁综合伊人av| 在线视频1区2区| 亚洲视频在线观看| 麻豆app在线观看| 日韩精品视频在线观看网址 | 国产成人午夜高潮毛片| 欧美日韩中文不卡| 蜜臂av日日欢夜夜爽一区| 人妻内射一区二区在线视频| 日韩亚洲在线| 久久av综合网| 亚洲久久一区| 日韩av高清在线看片| 精品91在线| 日韩视频在线视频| 黄色成人精品网站| 日本阿v视频在线观看| 亚洲小说区图片区| 超碰成人免费在线| 亚洲大胆av| 加勒比成人在线| 国产一级一区二区| 欧美一级在线看| 午夜在线a亚洲v天堂网2018| 北条麻妃在线视频观看| 午夜一区二区三区不卡视频| 国产真实乱子伦| 三级成人在线视频| 国产又大又黄又猛| 精品一区二区影视| 波多野结衣网页| 豆国产96在线|亚洲| av在线播放网址| 久久亚洲精品国产精品紫薇| mm131丰满少妇人体欣赏图| 久久久久久久久久久99999| 亚洲一区视频在线播放| 自拍偷拍国产精品| 成人免费看片98| 亚州成人在线电影| 亚洲黄色免费观看| 欧美日韩在线免费视频| 国产特级aaaaaa大片| 精品国产一区二区精华| 色综合成人av| 中文字幕日韩专区| 女子免费在线观看视频www| 97欧美精品一区二区三区| 免费成人直播| 成人免费福利视频| jazzjazz国产精品久久| 欧美亚洲另类久久综合| 久久一区91| 污污污污污污www网站免费| 国产精品夜夜夜| 不卡的av中文字幕| 成人免费黄色大片| 久久精品—区二区三区舞蹈| 亚洲色图.com| 国产农村妇女aaaaa视频| 欧美性受xxxx黑人xyx| hs视频在线观看| 日韩精品久久久久| 成年人网站在线| 欧美在线观看视频| 成人在线视频国产| 久久久久久久有限公司| 99久久亚洲精品蜜臀| 日日摸日日碰夜夜爽无码| 青青青伊人色综合久久| 亚洲乱妇老熟女爽到高潮的片 | 中文字幕电影av| 欧美性xxxxx| 国产三级第一页| 亚洲色图综合久久| 丁香花在线高清完整版视频| 国产精品爽爽ⅴa在线观看| 国产一区调教| 亚洲不卡中文字幕| 欧美极品一区二区三区| 哪个网站能看毛片| 成人午夜视频福利| 亚洲伦理一区二区三区| 色狠狠桃花综合| 天堂成人在线观看| 免费99精品国产自在在线| 日本精品不卡| 精品国产电影| 欧美日韩国产探花| 亚洲午夜精品一区| 国产精品视频第一区| 精品国产午夜福利| 亚洲第一国产精品| 50度灰在线| 国产一区红桃视频| 国产一区二区三区四区大秀| 9久久9毛片又大又硬又粗| 国产一区在线不卡| 欧美成人久久久免费播放| 色哟哟国产精品免费观看| 天堂在线视频观看| 久久久免费在线观看| 中文在线综合| 天天在线免费视频| 国产在线精品一区二区不卡了| 国产精品av久久久久久无| 欧美日韩午夜激情| 天天干,夜夜爽| 97成人超碰免| 欧美精品中文| 免费观看国产精品视频| 波多野结衣一区二区三区| 国产性猛交普通话对白| 91精品国产色综合久久不卡蜜臀| 永久免费av片在线观看全网站| 国产精品久久久久久久久影视| 精品久久网站| 男人女人黄一级| 亚洲国产精品av| 夜夜狠狠擅视频| 久久视频免费在线播放| 精品中文字幕一区二区三区四区| 美国av在线播放| 国产麻豆精品theporn| 538精品在线观看| 欧美变态tickle挠乳网站| 密臀av在线| 久久精品日产第一区二区三区| 母乳一区在线观看| 成都免费高清电影| 欧美日韩亚洲综合一区| 国产原创精品视频| 91黄在线观看| 亚洲人成在线影院| 日韩中文字幕电影| 欧美亚一区二区| 激情视频在线观看| 国产精品精品软件视频| 国产精品资源| 亚洲天堂最新地址| 91精品国产全国免费观看| 丰满诱人av在线播放| 欧美一区二区三区在| 少妇高潮av久久久久久| 国产精品久线观看视频| 一级特黄aaa大片| 九九九久久久久久| 久久精品国产亚洲5555| 日韩av资源在线| 国产精品你懂的在线欣赏| 国产ts变态重口人妖hd| 欧美一级黑人aaaaaaa做受| 日韩精品欧美| 久久免费精品国产| 日本韩国欧美国产| 中文字幕有码在线观看| 久草热久草热线频97精品| 麻豆一区二区三| 国产主播在线观看| 国产一区二区三区在线看| 精品一区二区三区在线观看视频| 男女日批视频在线观看| 国产免费观看久久| 亚洲成a人片在线| 国产精品草莓在线免费观看| 午夜精品久久99蜜桃的功能介绍| 三级电影在线看| 日韩一区二区三免费高清| 三上悠亚激情av一区二区三区| 国产高清免费在线| 久久免费看少妇高潮|