成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

八個工程必備的JavaScript代碼片段(建議添加到項目中)

開發 前端
8個工程必備的JavaScript代碼片段,聽過這樣起博客標題可以提高閱讀量。

[[432011]]

 1. 獲取文件后綴名

使用場景:上傳文件判斷后綴名 

  1. /**  
  2.  * 獲取文件后綴名  
  3.  * @param {String} filename  
  4.  */  
  5.  export function getExt(filename) {  
  6.     if (typeof filename == 'string') {  
  7.         return filename  
  8.             .split('.')  
  9.             .pop()  
  10.             .toLowerCase()  
  11.     } else {  
  12.         throw new Error('filename must be a string type')  
  13.     }  
  14.  
  15. 復制代碼 

使用方式 

  1. getExt("1.mp4") //->mp4  
  2. 復制代碼 

2. 復制內容到剪貼板 

  1. export function copyToBoard(value) {  
  2.     const element = document.createElement('textarea')  
  3.     document.body.appendChild(element)  
  4.     element.value = value  
  5.     element.select()  
  6.     if (document.execCommand('copy')) {  
  7.         document.execCommand('copy')  
  8.         document.body.removeChild(element)  
  9.         return true  
  10.     }  
  11.     document.body.removeChild(element)  
  12.     return false  
  13. 復制代碼

使用方式: 

  1. //如果復制成功返回true  
  2. copyToBoard('lalallala')  
  3. 復制代碼 

原理:

  1.  創建一個textare元素并調用select()方法選中
  2.  document.execCommand('copy')方法,拷貝當前選中內容到剪貼板。

3. 休眠多少毫秒 

  1. /**  
  2.  * 休眠xxxms  
  3.  * @param {Number} milliseconds  
  4.  */  
  5. export function sleep(ms) {  
  6.     return new Promise(resolve => setTimeout(resolve, ms))  
  7.  
  8. //使用方式  
  9. const fetchData=async()=> 
  10.  await sleep(1000)  
  11.  
  12. 復制代碼 

4. 生成隨機字符串 

  1. /**  
  2.  * 生成隨機id  
  3.  * @param {*} length  
  4.  * @param {*} chars  
  5.  */  
  6. export function uuid(length, chars) {  
  7.     charschars =  
  8.         chars ||  
  9.         '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'  
  10.     lengthlength = length || 8  
  11.     var result = ''  
  12.     for (var i = length; i > 0; --i)  
  13.         result += chars[Math.floor(Math.random() * chars.length)]  
  14.     return result  
  15.  
  16. 復制代碼 

使用方式 

  1. //第一個參數指定位數,第二個字符串指定字符,都是可選參數,如果都不傳,默認生成8位  
  2. uuid()   
  3. 復制代碼 

使用場景:用于前端生成隨機的ID,畢竟現在的Vue和React都需要綁定key

5. 簡單的深拷貝 

  1. /**  
  2.  *深拷貝  
  3.  * @export  
  4.  * @param {*} obj  
  5.  * @returns  
  6.  */  
  7. export function deepCopy(obj) {  
  8.     if (typeof obj != 'object') {  
  9.         return obj  
  10.     }  
  11.     if (obj == null) {  
  12.         return obj  
  13.     }  
  14.     return JSON.parse(JSON.stringify(obj))  
  15.  
  16. 復制代碼 

缺陷:只拷貝對象、數組以及對象數組,對于大部分場景已經足夠 

  1. const person={name:'xiaoming',child:{name:'Jack'}}  
  2. deepCopy(person) //new person  
  3. 復制代碼 

6. 數組去重 

  1. /**  
  2.  * 數組去重  
  3.  * @param {*} arr 
  4.  */  
  5. export function uniqueArray(arr) {  
  6.     if (!Array.isArray(arr)) {  
  7.         throw new Error('The first parameter must be an array')  
  8.     }  
  9.     if (arr.length == 1) {  
  10.         return arr  
  11.     }  
  12.     return [...new Set(arr)]  
  13.  
  14. 復制代碼 

原理是利用Set中不能出現重復元素的特性 

  1. uniqueArray([1,1,1,1,1])//[1]  
  2. 復制代碼 

7. 對象轉化為FormData對象 

  1. /**  
  2.  * 對象轉化為formdata  
  3.  * @param {Object} object  
  4.  */  
  5.  export function getFormData(object) {  
  6.     const formData = new FormData()  
  7.     Object.keys(object).forEach(key => {  
  8.         const value = object[key]  
  9.         if (Array.isArray(value)) {  
  10.             value.forEach((subValue, i) =>  
  11.                 formData.append(key + `[${i}]`, subValue)  
  12.             )  
  13.         } else {  
  14.             formData.append(key, object[key])  
  15.         }  
  16.     })  
  17.     return formData  
  18.  
  19. 復制代碼 

使用場景:上傳文件時我們要新建一個FormData對象,然后有多少個參數就append多少次,使用該函數可以簡化邏輯

使用方式: 

  1. let req={  
  2.     file:xxx, 
  3.     userId:1,  
  4.     phone:'15198763636',  
  5.     //...  
  6.  
  7. fetch(getFormData(req))  
  8. 復制代碼 

8.保留到小數點以后n位 

  1. // 保留小數點以后幾位,默認2位  
  2. export function cutNumber(number, no = 2) {  
  3.     if (typeof number != 'number') {  
  4.         number = Number(number)  
  5.     }  
  6.     return Number(number.toFixed(no))  
  7.  
  8. 復制代碼 

使用場景:JS的浮點數超長,有時候頁面顯示時需要保留2位小數。

 

責任編輯:龐桂玉 來源: 前端教程
相關推薦

2021-09-03 10:08:53

JavaScript開發 代碼

2022-07-25 15:21:50

Java編程語言開發

2024-08-02 17:19:36

2025-01-08 08:53:05

2024-12-30 07:47:15

Python科學計算

2013-09-05 13:49:18

WordPress速度

2016-09-19 15:15:01

shellbash腳本

2025-05-09 09:26:12

2025-03-20 00:00:05

2024-01-26 06:25:09

PyCharm插件代碼

2021-09-27 15:04:08

數字化轉型CIOIT

2013-06-07 10:52:18

移動應用移動產品設計

2023-05-03 21:42:02

Github開源項目

2022-06-13 09:00:33

React 項目前端

2021-06-29 10:03:45

數據科學機器學習算法

2023-11-13 10:11:49

開源前端

2025-03-26 05:00:00

前端開發者DOM

2023-05-22 15:53:06

JavaScrip代碼素材

2011-07-11 10:16:07

JavaScript

2020-08-30 14:40:34

首席信息官IT領導者倦怠
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合色自拍一区 | 毛片网站免费观看 | 国产成人免费网站 | 在线观看成人小视频 | 一区在线播放 | 91动漫在线观看 | 国产精品一区在线观看你懂的 | 黄色一级片aaa | 中文二区 | 日韩欧美第一页 | 99精品免费视频 | 国产精品天堂 | 999久久久久久久久6666 | 国产一区二区三区四区三区四 | 91嫩草精品 | 免费黄色片在线观看 | 久久久久国产一级毛片 | 午夜三级视频 | 国产精品资源在线 | 亚洲精品视频在线看 | 91精品亚洲 | 青青久在线视频 | 亚洲高清av | h在线看 | 国产亚洲一区二区三区 | 亚洲永久免费 | 99中文字幕 | 中文字幕日韩欧美一区二区三区 | 日韩在线观看一区 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 国产精品欧美一区二区三区不卡 | 精品网站999 | 成人欧美一区二区三区视频xxx | 中文字幕视频在线 | 国产精品明星裸体写真集 | 精品久久一区二区三区 | 精品一区二区三区四区五区 | 97偷拍视频 | 中文字幕第7页 | 成人国产在线视频 | 久久99国产精一区二区三区 |