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

有個開發者總結這 15 優雅的 JavaScript 個技巧

開發 前端
JavaScript 有很多很酷的特性,大多數初學者和中級開發人員都不知道。今天分享一些,我經常在項目中使用一些技巧。

[[427984]]

JavaScript 有很多很酷的特性,大多數初學者和中級開發人員都不知道。今天分享一些,我經常在項目中使用一些技巧。

1. 有條件地向對象添加屬性

我們可以使用展開運算符號(...)來有條件地向 JS 對象快速添加屬性。

  1. const condition = true
  2. const person = { 
  3.   id: 1, 
  4.   name'John Doe'
  5.   ...(condition && { age: 16 }), 
  6. }; 

如果每個操作數的值都為 true,則 && 操作符返回最后一個求值表達式。因此返回一個對象{age: 16},然后將其擴展為person對象的一部分。

如果 condition 為 false,JavaScript 會做這樣的事情:

  1. const person = { 
  2.   id: 1, 
  3.   name'前端小智'
  4.   ...(false),  
  5. }; 
  6. // 展開 `false` 對對象沒有影響 
  7. console.log(person); // { id: 1, name'John Doe' } 

2.檢查屬性是否存在對象中

可以使用 in 關鍵字來檢查 JavaScript 對象中是否存在某個屬性。

  1. const person = { name'前端小智', salary: 1000 }; 
  2. console.log('salary' in person); // true 
  3. console.log('age' in person); // false 

3.對象中的動態屬性名稱

使用動態鍵設置對象屬性很簡單。只需使用['key name']來添加屬性:

  1. const dynamic = 'flavour'
  2. var item = { 
  3.   name'前端小智'
  4.   [dynamic]: '巧克力' 
  5. console.log(item); // { name'前端小智', flavour: '巧克力' } 

同樣的技巧也可用于使用動態鍵引用對象屬性:

  1. const keyName = 'name'
  2. console.log(item[keyName]); // returns '前端小智' 

4. 使用動態鍵進行對象解構

我們知道在對象解構時,可以使用 : 來對解構的屬性進行重命名。但,你是否知道鍵名是動態的時,也可以解構對象的屬性?

  1. const person = { id: 1, name'前端小智' }; 
  2. const { name: personName } = person; 
  3. console.log(personName); // '前端小智' 

現在,我們用動態鍵來解構屬性:

  1. const templates = { 
  2.   'hello''Hello there'
  3.   'bye''Good bye' 
  4. }; 
  5. const templateName = 'bye'
  6.  
  7. const { [templateName]: template } = templates; 
  8.  
  9. console.log(template); // Good bye 

5. 空值合并 ?? 操作符

當我們想檢查一個變量是否為 null 或 undefined 時,??操作符很有用。當它的左側操作數為null 或 undefined時,它返回右側的操作數,否則返回其左側的操作數。

  1. const foo = null ?? 'Hello'
  2. console.log(foo); // 'Hello' 
  3.  
  4. const bar = 'Not null' ?? 'Hello'
  5. console.log(bar); // 'Not null' 
  6.  
  7. const baz = 0 ?? 'Hello'
  8. console.log(baz); // 0 

在第三個示例中,返回 0,因為即使 0 在 JS 中被認為是假的,但它不是null的或undefined的。你可能認為我們可以用||算子但這兩者之間是有區別的

你可能認為我們可以在這里使用 || 操作符,但這兩者之間是有區別的。

  1. const cannotBeZero = 0 || 5; 
  2. console.log(cannotBeZero); // 5 
  3.  
  4. const canBeZero = 0 ?? 5; 
  5. console.log(canBeZero); // 0 

6.可選鏈 ?

我們是不是經常遇到這樣的錯誤:TypeError: Cannot read property ‘foo’ of null。這對每一個毅開發人員來說都是一個煩人的問題。引入可選鏈就是為了解決這個問題。一起來看看:

  1. const book = { id:1, title: 'Title', author: null }; 
  2.  
  3. // 通常情況下,你會這樣做 
  4. console.log(book.author.age) // throws error 
  5. console.log(book.author && book.author.age); // null 
  6.  
  7. // 使用可選鏈 
  8. console.log(book.author?.age); // undefined 
  9. // 或深度可選鏈 
  10. console.log(book.author?.address?.city); // undefined 

還可以使用如下函數可選鏈:

  1. const person = { 
  2.   firstName: '前端'
  3.   lastName: '小智'
  4.   printName: function () { 
  5.     return `${this.firstName} ${this.lastName}`; 
  6.   }, 
  7. }; 
  8. console.log(person.printName()); // '前端 小智' 
  9. console.log(persone.doesNotExist?.()); // undefined 

7. 使用 !! 操作符!!

運算符可用于將表達式的結果快速轉換為布爾值(true或false):

  1. const greeting = 'Hello there!'
  2. console.log(!!greeting) // true 
  3.  
  4. const noGreeting = ''
  5. console.log(!!noGreeting); // false 

8. 字符串和整數轉換

使用 + 操作符將字符串快速轉換為數字:

  1. const stringNumer = '123'
  2.  
  3. console.log(+stringNumer); //123 
  4. console.log(typeof +stringNumer); //'number' 

要將數字快速轉換為字符串,也可以使用 + 操作符,后面跟著一個空字符串:

  1. const myString = 25 + ''
  2.  
  3. console.log(myString); //'25' 
  4. console.log(typeof myString); //'string' 

這些類型轉換非常方便,但它們的清晰度和代碼可讀性較差。所以實際開發,需要慎重的選擇使用。

9. 檢查數組中的假值

大家應該都用過數組方法:filter、some、every,這些方法可以配合 Boolean 方法來測試真假值。

  1. const myArray = [nullfalse'Hello', undefined, 0]; 
  2.  
  3. // 過濾虛值 
  4. const filtered = myArray.filter(Boolean); 
  5. console.log(filtered); // ['Hello'
  6.  
  7. // 檢查至少一個值是否為真 
  8. const anyTruthy = myArray.some(Boolean); 
  9. console.log(anyTruthy); // true 
  10.  
  11. // 檢查所有的值是否為真 
  12. const allTruthy = myArray.every(Boolean); 
  13. console.log(allTruthy); // false 

下面是它的工作原理。我們知道這些數組方法接受一個回調函數,所以我們傳遞 Boolean 作為回調函數。Boolean 函數本身接受一個參數,并根據參數的真實性返回 true 或 false。所以:

  1. myArray.filter(val => Boolean(val)); 

等價于:

  1. myArray.filter(Boolean); 

10. 扁平化數組

在原型 Array 上有一個方法 flat,可以從一個數組的數組中制作一個單一的數組。

  1. const myArray = [{ id: 1 }, [{ id: 2 }], [{ id: 3 }]]; 
  2.  
  3. const flattedArray = myArray.flat();  
  4. //[ { id: 1 }, { id: 2 }, { id: 3 } ] 

你也可以定義一個深度級別,指定一個嵌套的數組結構應該被扁平化的深度。例如:

  1. const arr = [0, 1, 2, [[[3, 4]]]]; 
  2. console.log(arr.flat(2)); // returns [0, 1, 2, [3,4]] 

11.Object.entries

大多數開發人員使用 Object.keys 方法來迭代對象。此方法僅返回對象鍵的數組,而不返回值。我們可以使用 Object.entries 來獲取鍵和值。

  1. const person = { 
  2.   name'前端小智'
  3.   age: 20 
  4. }; 
  5.  
  6. Object.keys(person); // ['name''age'
  7. Object.entries(data); // [['name''前端小智'], ['age', 20]] 

為了迭代一個對象,我們可以執行以下操作:

  1. Object.keys(person).forEach((key) => { 
  2.   console.log(`${keyis ${person[key]}`); 
  3. }); 
  4.  
  5. // 使用 entries 獲取鍵和值 
  6. Object.entries(person).forEach(([key, value]) => { 
  7.   console.log(`${keyis ${value}`); 
  8. }); 
  9.  
  10. // name is 前端小智 
  11. // age is 20  

上述兩種方法都返回相同的結果,但 Object.entries 獲取鍵值對更容易。

12.replaceAll 方法

在 JS 中,要將所有出現的字符串替換為另一個字符串,我們需要使用如下所示的正則表達式:

  1. const str = 'Red-Green-Blue'
  2.  
  3. // 只規制第一次出現的 
  4. str.replace('-'' '); // Red Green-Blue 
  5.  
  6. // 使用 RegEx 替換所有匹配項 
  7. str.replace(/\-/g, ' '); // Red Green Blue 

但是在 ES12 中,一個名為 replaceAll 的新方法被添加到 String.prototype 中,它用另一個字符串值替換所有出現的字符串。

  1. str.replaceAll('-'' '); // Red Green Blue 

13.數字分隔符

可以使用下劃線作為數字分隔符,這樣可以方便地計算數字中0的個數。

  1. // 難以閱讀 
  2. const billion = 1000000000; 
  3.  
  4. // 易于閱讀 
  5. const readableBillion = 1000_000_000; 
  6.  
  7. console.log(readableBillion) //1000000000 

下劃線分隔符也可以用于BigInt數字,如下例所示

  1. const trillion = 1000_000_000_000n; 
  2.  
  3. console.log(trillion); // 1000000000000 

14.document.designMode

與前端的JavaScript有關,設計模式讓你可以編輯頁面上的任何內容。只要打開瀏覽器控制臺,輸入以下內容即可。

  1. document.designMode = 'on'
圖片

15.邏輯賦值運算符

邏輯賦值運算符是由邏輯運算符&&、||、??和賦值運算符=組合而成。

  1. const a = 1; 
  2. const b = 2; 
  3.  
  4. a &&= b; 
  5. console.log(a); // 2 
  6.  
  7. // 上面等價于 
  8. a && (a = b); 
  9.  
  10. // 或者 
  11. if (a) { 
  12.   a = b 

檢查a的值是否為真,如果為真,那么更新a的值。使用邏輯或 ||操作符也可以做同樣的事情。

  1. const a = null
  2. const b = 3; 
  3.  
  4. a ||= b; 
  5. console.log(a); // 3 
  6.  
  7. // 上面等價于 
  8. a || (a = b); 

使用空值合并操作符 ??:

  1. const a = null
  2. const b = 3; 
  3.  
  4. a ??= b; 
  5. console.log(a); // 3 
  6.  
  7. // 上面等價于 
  8. if (a === null || a === undefined) { 
  9.   a = b; 

注意:??操作符只檢查 null 或 undefined 的值。

作者:Haseeb Anwar 譯者:前端小智

來源:medium原文:https://betterprogramming.pub/10-modern-javascript-tricks-every-developer-should-use-377857311d79 https://betterprogramming.pub/5-cool-modern-javascript-features-most-developers-dont-know-6baf19b532da

【編輯推薦】

 

責任編輯:姜華 來源: 大遷世界
相關推薦

2021-05-10 10:01:04

JavaScript開發技巧

2024-09-02 14:30:43

2011-11-17 17:35:12

jQuery

2025-02-13 12:52:27

JavaScrip代碼開發

2022-09-05 14:17:48

Javascript技巧

2020-03-31 09:47:04

Vue開發代碼

2020-06-15 10:29:10

JavaScript開發 技巧

2022-10-20 15:12:43

JavaScript技巧開發

2022-04-26 18:33:02

JavaScript技巧代碼

2017-12-27 22:32:00

開發者JavaScript數據

2022-12-22 14:44:06

JavaScript技巧

2022-12-25 16:03:31

JavaScript技巧

2023-11-26 17:54:07

JavaScript開發

2014-02-17 11:02:43

JavaScript動畫庫

2024-01-15 17:26:26

JavaScriptWeb開發

2015-08-11 08:41:58

游戲數據游戲開發

2015-04-14 09:33:17

WatchKitAPP

2023-03-27 23:57:25

JavaScrip開發技巧

2023-06-29 15:08:21

JavaScrip開發

2015-03-25 11:12:35

iOS開發
點贊
收藏

51CTO技術棧公眾號

久久久久国产| 色偷偷色偷偷色偷偷在线视频| 蜜桃久久久久久| 久久精品亚洲国产| 黄色性视频网站| 原纱央莉成人av片| 一区在线观看视频| 国产在线欧美日韩| 欧美高清69hd| 亚洲三级毛片| 色偷偷91综合久久噜噜| 欧美午夜精品一区二区| 日本不卡一二三| 一区二区三区影院| 日本一区二区在线视频| 国产成人精品一区二三区四区五区| 亚洲国产高清一区| 色综合亚洲精品激情狠狠| 男男一级淫片免费播放| 成人综合网站| 欧美日韩一区二区免费在线观看| 一区二区欧美日韩| 日产精品久久久久久久性色| 精品一区中文字幕| 欧洲亚洲在线视频| 久久久久久国产精品免费播放| 久久99国产成人小视频| 日韩精品在线一区| 性chinese极品按摩| 成人免费观看在线观看| 亚洲欧美一区二区三区国产精品 | 一级片中文字幕| 亚洲草久电影| 中文字幕欧美日韩精品| 亚洲熟女乱综合一区二区三区| 成人午夜888| 在线亚洲高清视频| 日韩av综合在线观看| 欧洲中文在线| 亚洲精品ww久久久久久p站| 小说区图片区图片区另类灬| 国产xxxx孕妇| 国产一区二区三区四| 国产精品欧美亚洲777777| 无码人妻久久一区二区三区| 一区二区国产精品| 国内成人精品视频| 青青草激情视频| 亚洲成人av| 久久深夜福利免费观看| 免费成人深夜夜行网站| 色欧美自拍视频| 在线看日韩av| 永久免费av无码网站性色av| 国产麻豆精品久久| 亚洲性生活视频在线观看| 久久久精品人妻无码专区| 精品自拍偷拍| 日韩成人在线播放| 免费a在线观看播放| 米奇精品关键词| 亚洲第一网站男人都懂| 亚洲精品国产成人av在线| 国产美女撒尿一区二区| 亚洲精品国产综合久久| 国产肉体xxxx裸体784大胆| 特黄特色欧美大片| 亚洲免费小视频| 日本成人免费视频| 日韩中文在线电影| 久久精品2019中文字幕| 日本福利片在线观看| 欧美日韩国产亚洲一区| 欧美精品久久久久久久久久| 国产情侣在线视频| 久久中文在线| 成人午夜小视频| www.xxxx国产| 26uuuu精品一区二区| 热re99久久精品国99热蜜月| 91精品专区| 亚洲女与黑人做爰| 国产曰肥老太婆无遮挡| 欧美色999| 555夜色666亚洲国产免| 国产女人18毛片水真多18| 牛牛精品成人免费视频| 在线播放日韩欧美| 成熟的女同志hd| 99热在线精品观看| 国产脚交av在线一区二区| 国产精品热久久| 不卡电影免费在线播放一区| 日本不卡一区| 性爱视频在线播放| 欧美视频二区36p| 午夜国产福利在线观看| 北条麻妃一区二区三区在线| 亚洲欧美制服中文字幕| 国产精品18在线| 在线精品亚洲| 国产人妖伪娘一区91| 亚洲国产精品久久人人爱潘金莲| 久久久五月婷婷| 四虎影院一区二区| 女厕盗摄一区二区三区| 欧美日韩激情在线| 欧美成人三级伦在线观看| 久久中文字幕二区| 91精品国产91久久| 国产伦理一区二区| 国产日本欧洲亚洲| 日本阿v视频在线观看| 久久精品资源| 日韩高清人体午夜| 国产高潮流白浆| 日一区二区三区| 国内一区二区三区在线视频| 黄网站在线播放| 一本一本久久a久久精品综合麻豆| 国模大尺度视频| 成人羞羞动漫| 91av成人在线| 午夜精品久久久久久久99热黄桃 | 欧美污视频久久久| 黄网站在线观| 欧美一区二区三区视频免费 | 日韩精品1区| 7777免费精品视频| 精品国自产拍在线观看| 中文文精品字幕一区二区| 黄色免费视频大全| 91成人福利| 美日韩精品免费视频| 成人午夜精品视频| 91视频免费观看| 欧美一级欧美一级| 亚洲国产高清在线观看| 久久精品国产亚洲一区二区| 国产情侣呻吟对白高潮| 久久久久国产精品麻豆| 天天综合色天天| aaa毛片在线观看| 欧美激情极品| 性色av一区二区三区| 国内老熟妇对白xxxxhd| 日韩美女久久久| 亚洲精品手机在线观看| 成人vr资源| 国产精品嫩草视频| 日本免费在线视频| 欧美亚洲国产一区在线观看网站| 公侵犯人妻一区二区三区| 一本综合久久| 日本高清不卡一区二区三| 黑人巨大精品| 国产一区二区三区在线视频 | 在线不卡日本v二区707| 欧美一区二区三区免费视频 | 久草在现在线| 欧洲一区二区三区在线| youjizz亚洲女人| 麻豆91在线播放| 亚洲欧美一二三| 一区二区网站| 88xx成人精品| www.久久热.com| 欧美巨大另类极品videosbest| 三级在线观看免费大全| 国产精品66部| 天堂…中文在线最新版在线| 婷婷五月色综合香五月| 国产91网红主播在线观看| 国产高清自拍视频在线观看| 欧美日韩亚洲高清一区二区| 日韩激情小视频| 成人手机在线视频| 国产成人a亚洲精v品无码| 精品国产乱码久久久久久果冻传媒| 国产精品私拍pans大尺度在线| 精品国产99久久久久久| 亚洲成人亚洲激情| 无码人妻精品一区二区50| 国产精品久久午夜| 亚洲黄色小说在线观看| 久久激情视频| 午夜啪啪福利视频| 欧美影院天天5g天天爽| 国产精品欧美激情在线播放| 欧美激情成人动漫| 亚洲精品在线看| 国产精品探花视频| 精品露脸国产偷人在视频| 精品人妻中文无码av在线| 国产**成人网毛片九色| 久章草在线视频| 一区二区三区网站 | 性chinese极品按摩| 狠狠爱成人网| 天天久久人人| 好吊妞视频这里有精品| 日韩av男人的天堂| 天使と恶魔の榨精在线播放| 亚洲精品动漫100p| 亚洲天堂avav| 精品久久久久久电影| www.99re6| 91麻豆精东视频| 伊人精品视频在线观看| 香蕉国产精品偷在线观看不卡| 伊人久久大香线蕉av一区| 国产精品极品在线观看| 国产精品一区二区电影| 成年人在线网站| 欧美成人中文字幕在线| 国产免费视频在线| 欧美精品一区二区三区很污很色的| 日韩xxx视频| 欧美日韩中文在线观看| 国产精品视频一区二区三| 国产亚洲综合色| 亚洲av熟女高潮一区二区| 看国产成人h片视频| 日日摸天天爽天天爽视频| 亚洲私拍自拍| 女女同性女同一区二区三区按摩| 亚洲尤物av| 国产精品一区二区在线观看| 亚洲欧洲一二区| 国产精品第七十二页| 9765激情中文在线| 欧美猛交免费看| 黄色的网站在线观看| 国产香蕉97碰碰久久人人| 少妇人妻一区二区| 日韩丝袜情趣美女图片| 亚洲天堂中文字幕在线| 91传媒视频在线播放| 在线观看国产亚洲| 夜夜爽夜夜爽精品视频| 欧美激情精品久久久久久免费| 国产日韩高清在线| 天天躁日日躁aaaxxⅹ| 成人国产精品免费观看动漫| 日本一区二区三区在线免费观看| 久久国内精品自在自线400部| 国产一区二区在线免费播放| 久久久噜噜噜| 成人免费观看视频在线观看| 精品不卡视频| 欧美久久久久久久久久久久久| 亚洲午夜av| 国产精品69久久久| 亚洲天堂男人| 日本欧美视频在线观看| 在线亚洲观看| 欧美 日韩 国产一区| 久久久精品五月天| av动漫免费看| 久久99日本精品| 99日在线视频| 国产成人精品影院| 麻豆短视频在线观看| 成人黄色网址在线观看| 欧美熟妇精品一区二区蜜桃视频| www.色精品| 亚洲AV无码国产精品| 久久久久久久久免费| 欧美 日韩 国产 成人 在线观看| 久久久精品综合| 一二三四国产精品| 亚洲日韩欧美一区二区在线| 欧美成人三级视频| 午夜一区二区三区在线观看| 少妇一级淫片免费放中国 | 人妻久久久一区二区三区| 国产日韩一区二区三区在线播放| 国产精品亚洲a| 美国三级日本三级久久99 | 99久久精品99国产精品 | 高h调教冰块play男男双性文| 精品国产乱码久久久久久夜甘婷婷 | 亚洲熟妇一区二区三区| 国产丝袜美腿一区二区三区| 久久嫩草捆绑紧缚| 一区二区高清免费观看影视大全| 国产91av视频| 欧美亚洲免费在线一区| 精品国产亚洲av麻豆| 亚洲美女性视频| 丝袜美腿美女被狂躁在线观看| 欧美日本高清视频| 欧美日韩国产v| 91免费看片网站| 色婷婷综合久久久久久| 一区二区不卡在线视频 午夜欧美不卡'| 伊人成人在线| 精品999在线| 成人免费高清视频| 日韩中文字幕有码| 亚洲一区二区在线视频| 69av视频在线观看| 日韩一区二区免费视频| 青青草视频在线免费观看| 欧美超级免费视 在线| 成人性生交大片免费网站| 91中文字幕在线| 国产精品最新| 黄色免费福利视频| 韩日欧美一区二区三区| 亚洲永久无码7777kkk| 亚洲天堂免费在线观看视频| 中文字幕日韩免费| 日韩精品最新网址| 超碰在线国产| 欧美亚洲在线播放| 亚洲精品黑牛一区二区三区| 亚洲国产精品一区在线观看不卡| 一区精品久久| www.色.com| 中文字幕制服丝袜成人av| aaa人片在线| 日韩精品一区二区三区在线播放 | 欧美日韩国产成人| 成人a在线观看高清电影| 精品久久久久久中文字幕动漫| 91精品一区二区三区综合| 欧美黑人又粗又大又爽免费| 99视频在线精品| 久操免费在线视频| 91精品国产综合久久香蕉的特点| 国产精品麻豆一区二区三区| 欧美亚洲视频在线观看| 北条麻妃一区二区三区在线| 青青视频免费在线| 精油按摩中文字幕久久| 国产精品成人无码免费| 色婷婷av一区二区三区软件| 亚洲欧美日韩综合在线| 欧美激情成人在线视频| 国产乱码精品一区二区三区亚洲人 | 18禁一区二区三区| 亚洲三级视频在线观看| 国产精品爽爽久久| 日韩有码在线电影| 亚洲精品一区av| 亚洲欧洲精品在线 | 一本一道久久综合狠狠老| 日日干夜夜操s8| 国产精品乱码一区二区三区软件| 波多野结衣在线观看视频| 亚洲精品一区二区网址| 亚洲最新无码中文字幕久久| 国产一区二区三区高清| 亚洲国产1区| 第四色在线视频| 欧美性生交xxxxx久久久| 日本福利片高清在线观看| 欧美一区二区三区免费观看| 亚洲资源网你懂的| 久久久免费视频网站| 久久久精品免费网站| 高潮毛片又色又爽免费| 亚洲最大在线视频| 亚洲一区av| 波多野结衣av一区二区全免费观看| 成人丝袜18视频在线观看| 亚洲久久在线观看| 亚洲欧美一区二区三区四区| 成人激情视屏| 中文字幕一区二区三区四区五区人 | 国产videos久久| 日本在线观看免费视频| 日韩美女视频19| 丰满人妻一区二区| 26uuu另类亚洲欧美日本一| 狠狠综合久久av一区二区蜜桃| 中文字幕av不卡在线| 亚洲免费av观看| 五月婷婷在线播放| 国产成人一区二区三区| 希岛爱理一区二区三区| 日本一级大毛片a一| 色美美综合视频| 免费av网站在线观看| 国产经典一区二区三区 | 亚洲美女视频在线观看| 视频一区二区免费| 国产精品国产亚洲伊人久久| 亚洲成av人片一区二区密柚| 艳妇乳肉亭妇荡乳av| 欧美三片在线视频观看| 在线网址91| 欧美精品七区| 国产精品一区在线观看乱码| 99热只有这里有精品| 久久香蕉频线观| 欧美极品中文字幕| 日本wwww色| 欧美亚州韩日在线看免费版国语版|