自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

周末學(xué)會了 10個超級實(shí)用 Javascript 技巧!

開發(fā) 前端
眾所周知,JavaScript 一直在快速變化。在新的 ES2020 中,有很多很棒的特性,我們大都已經(jīng)迫不及待嘗試了。老實(shí)說,有時我們可以用不同角度來編寫代碼,同樣也能達(dá)到相同的效果,而且有的還會更簡短,更清晰。

 眾所周知,JavaScript 一直在快速變化。在新的 ES2020 中,有很多很棒的特性,我們大都已經(jīng)迫不及待嘗試了。老實(shí)說,有時我們可以用不同角度來編寫代碼,同樣也能達(dá)到相同的效果,而且有的還會更簡短,更清晰。

[[332030]]

下面是列出一些 JavaScript 有用的技巧,相信總有一天會對你有所幫助。

1.方法參數(shù)驗(yàn)證

ES6 中可以為函數(shù)的參數(shù)設(shè)置默認(rèn)值,有了這個,我們可以實(shí)現(xiàn)一個驗(yàn)證方法參數(shù)不能為空的巧妙技巧。

  1. const isRequired = () => {  
  2.   throw new Error('param is required'
  3.  
  4. const print = (num = isRequired()) => {  
  5.   console.log(`printing ${num}`)  
  6.  
  7. print(2) //printing 2 
  8. print() // error 
  9. print(null) //printing null 

2.格式化JSON代碼

我們都非常熟悉JSON.stringify,但比較少知道的是它還可以進(jìn)行格式化的輸出。

stringify 方法有三個參數(shù):value,replacer和space。其中,后兩個是可選參數(shù),這也是我們很少知道它的原因。要縮進(jìn)JSON,必須使用space參數(shù)。

  1. console.log(JSON.stringify({name:"John",Age:23},null,'\t')); 
  2. >>>  
  3.  "name""John"
  4.  "Age": 23 

3.從數(shù)組中獲取惟一的值

要從數(shù)組中獲得唯一的值,需要使用filter方法過濾掉重復(fù)的值。但是有了新的Set原生對象,事情就變得非常簡單了。

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

4.從數(shù)組中刪除虛值

在某些情況下, 我們想從數(shù)組中刪除虛值。虛值是 JavaScript 中的值為FALSE的值。JavaScript 中只有六個虛值,它們是:

  • undefined
  • null
  • NaN
  • 0
  • '' (空字符)
  • false

過濾這些虛值的最簡單方法是使用下面的函數(shù):

  1. myArray.filter(Boolean) 

如果要對數(shù)組進(jìn)行一些修改,然后過濾新數(shù)組,則可以嘗試這樣的操作。請記住,原始myArray保持不變。

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

5.合并多個對象

實(shí)際需求中,我們經(jīng)常需要合并多個對照,快速的做法可以像下面這么做:

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

6.排序數(shù)字?jǐn)?shù)組

JavaScript 數(shù)組帶有內(nèi)置的sort方法。默認(rèn)情況下,此sort方法將數(shù)組元素轉(zhuǎn)換為字符串,并對其進(jìn)行字典排序。但這在對數(shù)字?jǐn)?shù)組進(jìn)行排序時,會有問題,解決方法就是手寫一個排序方法。

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

7.禁用鼠標(biāo)右鍵

有些情況,我們想在網(wǎng)頁上禁用鼠標(biāo)的右鍵,可以使用下面的方式來禁用:

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

這個簡單的代碼就可以禁用右鍵單擊。

8.在解構(gòu)中使用別名

解構(gòu)賦值是一個JavaScript表達(dá)式,它可以將數(shù)組中的值或?qū)ο笾械膶傩越鈽?gòu)縮不同的變量中。不必使用現(xiàn)有的對象變量,我們可以根據(jù)自己的偏好重命名它們。

  1. const object = { number: 10 } 
  2.  
  3. const { number } = object 
  4.  
  5. // 使用別名 
  6. const { number: otherNumber } = object 
  7.  
  8. console.log(otherNumber) //10 

9.獲取數(shù)組中的最后一項(xiàng)

如果要獲取數(shù)組的末尾元素,可以使用slice方法。

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

10. 等待 Promises

在某些情況下,我們需要等待多個Promise結(jié)束,這里,我們使用Promise.all。

  1. const PromiseArray = [ 
  2.     Promise.resolve(100), 
  3.     Promise.reject(null), 
  4.     Promise.resolve("Data release"), 
  5.     Promise.reject(new Error('Something went wrong'))]; 
  6. Promise.all(PromiseArray) 
  7.   .then(data => console.log('all resolved! here are the resolve values:', data)) 
  8.   .catch(err => console.log('got rejected! reason:', err)) 

關(guān)于Promise.all需要注意的一件事是,當(dāng)一個Promise拒絕時,該方法將引發(fā)錯誤。這意味著我們的代碼將不會等到所有的Promise都完成。

如果想要等到所有Promise都完成后,無論它們被拒絕還是成功,可以使用Promise.allSettled。此方法在ES2020的最終版本中。

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

作者:Mahdhi Rezvi 譯者:前端小智 來源:medium

原文:https://blog.bitsrc.io/10-super-useful-tricks-for-javascript-developers-f1b76691199b

本文轉(zhuǎn)載自微信公眾號「 大遷世界」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系 大遷世界公眾號。

 

責(zé)任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2023-08-22 10:25:19

CSS動畫網(wǎng)頁

2021-03-15 08:13:19

JavaScript開發(fā)代碼

2014-10-13 11:05:55

程序員實(shí)用技術(shù)

2024-02-26 08:20:00

CSS開發(fā)

2023-12-19 13:31:00

CSS前端技巧

2023-08-11 17:39:43

JavaScriptWeb 應(yīng)用程序

2023-11-26 17:54:07

JavaScript開發(fā)

2024-08-21 14:55:02

2023-07-18 07:56:31

工具reduce業(yè)務(wù)

2023-06-28 00:02:40

2023-08-18 15:12:00

JavaScript開發(fā)

2017-10-30 17:25:11

javascript

2016-05-10 10:16:13

JavaScript技巧

2023-05-04 23:54:02

JavaScrip代碼技巧

2024-09-06 15:48:13

2011-08-11 10:38:50

windows7技巧Windows7技巧

2019-06-14 14:15:07

Javascript調(diào)試技巧代碼

2024-11-28 10:09:06

2023-06-26 00:01:11

2021-11-30 07:01:19

Python自動化腳本
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號