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

很多JavaScript開發人員都忽略了的十大超實用技巧

開發 前端
眾所周知,JavaScript更新換代的速度特別快,總能給人新鮮感,也一直有能讓我們挖掘探索的東西,新版ES2020就有許多特別厲害的功能讓人迫不及待想試試。

 本文轉載自公眾號“讀芯術”(ID:AI_Discovery)

眾所周知,JavaScript更新換代的速度特別快,總能給人新鮮感,也一直有能讓我們挖掘探索的東西,新版ES2020就有許多特別厲害的功能讓人迫不及待想試試。

[[331845]]

寫代碼的方法有很多,總有一些方法寫出來的代碼要更加簡潔清楚,這就需要一些小技巧了。本文就列出了一些對JavaScript開發人員有用的技巧,希望會對你有所幫助。

方法參數校驗

JavaScript可以設置參數的默認值,這提供了一個驗證方法參數的小竅門:

 

  1. const isRequired = () => { thrownew Error('param is required'); }; 
  2. const print = (num =isRequired()) => { console.log(`printing ${num}`) }; 
  3. print(2);//printing 2 
  4. print()// error 
  5. print(null)//printing null 

格式化JSON編碼

你肯定對JSON.stringify 已經很熟悉了,但你會用 stringify 將輸出格式化嗎?這個操作實際非常簡單。stringify 需要三個參數,value , replacer 和space,后兩個是可選參數,所以之前沒有用到過它,如果要縮進JSON就必須設置space參數。

 

  1. console.log(JSON.stringify({name:"John",Age:23},null,'\t'));>>> 
  2.  "name""John"
  3.  "Age": 23 
很多JavaScript開發人員都忽略了的十大超實用技巧

從數組中獲取唯一值

從數組中獲取唯一值要使用filter過濾出重復值,但有了新的set原生對象就變得順手多了。

 

  1. let uniqueArray = [...newSet([1, 2, 3, 3,3,"school","school",'ball',false,false,true,true])]; 
  2. >>> [1, 2, 3,"school""ball"falsetrue

篩選數字數組

JavaScript數組帶有內置的篩選方法。默認情況下,該方法將數組元素轉換為字符串,并對其進行字典排序。在對數字數組進行排序時可能會出現問題,這兒有一個簡單的解決方案:

 

  1. [0,10,4,9,123,54,1].sort((a,b)=> a-b);>>> [0, 1, 4, 9, 10, 54, 123] 

這個函數通過比較數字數組中的兩個元素實現篩選,可以得到正確的輸出。

刪除數組中的虛假值

有時我們可能需要刪掉數組中的虛假值,即那些在JavaScript中等同于FALSE的值,JavaScript有六種虛假值,包括:

  1. undefined
  2. null
  3. NaN
  4. 0
  5.  “” (空字符串)
  6. false

過濾出虛假值比較簡單的方法是使用下面的函數:

 

  1. myArray 
  2.     .filter(Boolean); 

如果要對數組進行一些修改,然后過濾新數組,可以嘗試如下操作。記住,原始myArray保持不變。

 

  1. myArray 
  2.     .map(item => { 
  3.         // Do your changes and return thenew item 
  4.     }) 
  5.     .filter(Boolean); 

合并多個對象

碰到要合并兩類或多類的情況時,下面的方法非常好用:

 

  1. const user = { 
  2. name'John Ludwig'
  3. gender: 'Male' 
  4. };const college = { 
  5. primary'Mani Primary School'
  6. secondary: 'Lass Secondary School' 
  7. };const skills = { 
  8. programming: 'Extreme'
  9. swimming: 'Average'
  10. sleeping: 'Pro' 
  11. };const summary = {...user, ...college,...skills}; 

等所有promise完成后再行動

有時你需要等一些promise對象完成后才能進行下一步操作,我們可以使用Promise.all 來同步完成。注意,所有Promise可以在單核CPU中同時運行,在多核CPU中并行運行。它的主要任務是等待傳遞給它的所有promise對象全部得到解析。

 

  1. const PromiseArray = [ 
  2.     Promise.resolve(100), 
  3.     Promise.reject(null), 
  4.     Promise.resolve("Datarelease"), 
  5.     Promise.reject(new Error('Somethingwent wrong'))];Promise.all(PromiseArray) 
  6.   .then(data => console.log('allresolved! here are the resolve values:', data)) 
  7.   .catch(err => console.log('gotrejected! reason:', err)) 

Promise.all必須注意的要點是,如果其中一個promise被拒,就會發出錯誤警告。這意味著你的代碼不用等所有promise對象全部解析完畢。

如果不管promise是否被拒都想讓它全部運行完,可以用Promise.allSettled,在ES2020的最終版本中使用這個方法:

 

  1. const PromiseArray = [ 
  2.     Promise.resolve(100), 
  3.     Promise.reject(null), 
  4.     Promise.resolve("Datarelease"), 
  5.     Promise.reject(new Error('Somethingwent wrong'))];Promise.allSettled(PromiseArray).then(res =>{ 
  6. console.log(res); 
  7. }).catch(err => console.log(err));//[ 
  8. //{status: "fulfilled", value: 100}, 
  9. //{status: "rejected", reason: null}, 
  10. //{status: "fulfilled", value: "Data release"}, 
  11. //{status: "rejected", reason: Error: Something went wrong ...} 
  12. //] 

盡管有些promise被拒,Promise.allSettled 會返回所有promise的結果。

禁用右鍵

盡管不多見,但有時你可能需要阻止用戶在網頁上使用鼠標右鍵,這個簡單的代碼就能做到:

  1. <body oncontextmenu="returnfalse"
  2.     <div></div> 
  3. </body> 

利用別名節點解構

解構賦值是JavaScript的一種表達式,可以將數組中的值或對象屬性解壓為不同的變量,且不必堅持使用現有的對象變量,而可以按照個人喜好對其重新命名:

 

  1. const object = { number: 10 };//Grabbing number 
  2. const { number } = object;// Grabbing number and renaming it as otherNumber 
  3. const { number: otherNumber } = object;console.log(otherNumber); //10 

獲取數組中的最后幾項

如果要提取數組最后幾項,可以使用slice方法,參數設置為負參數:

 

  1. let array = [0, 1, 2, 3, 4, 5,6, 7] 
  2. console.log(array.slice(-1)); 
  3. >>>[7] 
  4. console.log(array.slice(-2)); 
  5. >>>[6, 7] 
  6. console.log(array.slice(-3)); 
  7. >>>[5, 6, 7] 

這些可能會被忽視的小技巧可能會給你幫大忙,趕快學起來吧!

 

責任編輯:華軒 來源: 讀芯術
相關推薦

2011-03-31 10:22:41

Java開發

2018-05-08 12:00:33

開發代碼Swift

2020-06-28 09:56:48

.NET開發工具

2024-09-06 15:48:13

2009-04-03 14:36:05

Java問卷調查開源

2016-10-18 10:45:00

開發開源

2020-06-05 14:38:25

開發人員職位開發

2021-11-21 22:43:10

Java開發框架

2016-11-09 13:46:00

云數據庫

2016-10-14 19:30:21

云計算云數據庫數據庫

2015-07-09 10:18:36

Android開發工具

2019-07-02 14:27:31

編程語言開發

2024-08-12 08:00:00

人工智能開發AI編程助理

2015-03-03 09:35:46

移動開發APP趨勢

2017-10-24 11:59:41

JavaScript

2012-07-13 09:18:29

2022-01-21 10:18:53

VSCode擴展插件

2015-03-03 14:58:56

移動開發APP趨勢

2010-05-17 09:50:24

PHP

2024-11-04 14:18:32

JavaScript編程語言開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91在线观看免费 | 国产精品久久久久不卡 | 欧美三区在线观看 | 亚洲高清视频一区 | 韩日一区二区三区 | 婷婷激情综合 | 欧美性一区二区三区 | 国户精品久久久久久久久久久不卡 | 国产免费观看一级国产 | 成人网址在线观看 | 亚洲高清在线免费观看 | 天天搞天天搞 | 日韩精品一区二区三区视频播放 | 国产精品99久久久久久久久久久久 | av资源在线看 | 日韩一区二区三区在线观看 | 亚洲视频观看 | 亚洲综合大片69999 | 久色一区 | 国产精品久久久久一区二区三区 | 欧美激情一区 | 国产欧美在线观看 | 夜夜精品浪潮av一区二区三区 | caoporon| 精品久久久久久亚洲综合网 | 一区二区三区av | 欧美日韩三级 | 婷婷久久综合 | 成人久久 | 一区二区三区四区在线视频 | 国产小视频在线 | 亚洲一卡二卡 | 欧美日韩中文字幕 | 浴室洗澡偷拍一区二区 | 伊人热久久 | 精品九九九| www.色综合 | 成人免费黄色片 | 日日艹夜夜艹 | 国产精品欧美精品 | 一区二区三区视频在线观看 |