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

久久久久久一区二区三区四区别墅| 91成人在线播放| 亚洲一区二区久久久久久| 95视频在线观看| 国产又粗又黄又爽的视频| 精品嫩草影院| 亚洲欧美一区二区三区极速播放| 欧洲亚洲女同hd| 中文字幕在线国产| 小黄鸭精品aⅴ导航网站入口| 丁香婷婷综合激情五月色| 日韩资源在线观看| 波多野结衣天堂| 免费一级毛片在线观看| swag国产精品一区二区| 亚洲欧洲成人av每日更新| 国产成人精品免高潮在线观看| yjizz视频| 国产精品186在线观看在线播放| 精品制服美女丁香| 中文字幕av一区二区三区谷原希美| 欧美黑人经典片免费观看| 亚洲AV无码一区二区三区少妇| 99久久九九| 91精品婷婷国产综合久久竹菊| 亚洲一区高清| 国产免费黄色片| 中文字幕亚洲精品乱码| 日韩一级大片在线观看| 热久久最新网址| www.97超碰| 亚洲性感美女99在线| 亚洲成在人线av| heyzo国产| 东热在线免费视频| 免费高清在线视频一区·| www.日韩视频| 中文字幕国产综合| 日韩高清在线| 国产精品传媒入口麻豆| 亚洲精品欧美一区二区三区| 欧美视频xxxx| 香蕉av一区二区| 日韩亚洲欧美中文三级| 欧美特级aaa| 污视频网站在线免费| 成人性生交大片免费| 91久久在线视频| 五月天婷婷网站| 沈樵精品国产成av片| 欧美日韩一级视频| 国产性生活免费视频| 亚州av在线播放| 日本特黄久久久高潮| www.久久久久久.com| 精品一区二区三区蜜桃在线| 网站一区二区| 日韩欧美精品免费在线| 亚洲一区三区视频在线观看| 成年在线电影| 成人午夜短视频| 99蜜桃在线观看免费视频网站| 中文字幕一区二区三区精品| 久久一区二区三区电影| 亚洲电影在线看| 少妇搡bbbb搡bbb搡打电话| 日本免费一区二区三区视频| 日韩欧美中文字幕一区| 一级全黄裸体片| 婷婷激情一区| 欧美色涩在线第一页| 污视频网站观看| 麻豆视频在线看| 国产精品福利一区二区| 在线观看日本一区| 涩涩视频在线观看免费| 激情久久五月天| 欧美综合在线观看| 欧美日韩 一区二区三区| 亚洲午夜精品久久久久久app| 国产亚洲精品91在线| 日本精品一二三区| 任你弄精品视频免费观看| 欧美丰满少妇xxxxx高潮对白| 免费成人在线视频网站| 日本成人三级电影| 在线不卡a资源高清| 亚洲欧美日韩色| 欧美性感美女一区二区| 亚洲精品永久免费精品| yjizz视频| 精品久久电影| 亚洲人成网7777777国产| 色哟哟无码精品一区二区三区| 婷婷成人在线| 亚洲丁香久久久| 少妇人妻好深好紧精品无码| 中文字幕亚洲精品乱码| 日本高清视频一区| 国产美女明星三级做爰| 久久久噜噜噜久久人人看 | 日韩一级大片在线观看| 国产精品边吃奶边做爽| 成人黄色av网址| 亚洲一区二区久久久| 欧美日韩精品一区二区三区视频播放| 欧美艳星介绍134位艳星| 欧美精品免费看| 神马久久精品综合| 久久久久久久久久久9不雅视频| 欧美精品激情在线观看| 国产性一乱一性一伧一色| 欧美在线视屏| 高清欧美一区二区三区 | 香蕉乱码成人久久天堂爱免费| 乱子伦一区二区| a免费在线观看| 亚洲免费在线播放| 无码毛片aaa在线| 日韩高清在线| 日韩成人中文字幕在线观看| www.88av| 日韩欧美中文字幕电影| 欧美成人精品xxx| 亚洲天堂中文网| 国产一区二区三区不卡在线观看| 91日韩在线播放| 国产香蕉在线| 欧美视频在线免费| 白嫩情侣偷拍呻吟刺激| 亚洲人体av| 国产精品影院在线观看| 一级黄色短视频| 久久久美女艺术照精彩视频福利播放| 日本阿v视频在线观看| av影视在线看| 欧美性猛交xxxx乱大交3| 一区二区在线免费观看视频| 激情小说亚洲色图| 欧美理论电影在线播放| 国产精品6666| 懂色av中文一区二区三区| 久久伦理网站| 日本中文字幕在线视频| 一区二区三区不卡在线观看| av在线播放亚洲| 中文字幕久久精品一区二区| 亚洲精品国产福利| 国产午夜精品久久久久久久久| 91精品啪在线观看国产18| 国产精品一区二区三区久久久| 国产中文在线视频| 亚洲精品视频在线| 伊人免费视频二| 日本精品影院| 2021久久精品国产99国产精品| 性高潮视频在线观看| 国产亚洲成aⅴ人片在线观看| 91香蕉视频网址| 最近高清中文在线字幕在线观看1| 欧美日韩国产一级| 免费的av网站| 亚洲一区图片| 3d精品h动漫啪啪一区二区| 人成在线免费视频| 一本色道久久加勒比精品 | 在线亚洲人成| 3atv一区二区三区| 日本黄色小说视频| 成人综合在线网站| 黄色片视频在线免费观看| 亚洲福利影视| 亚洲美女av在线播放| 青青草原国产视频| 理论电影国产精品| 久久艳妇乳肉豪妇荡乳av| 中文字幕在线播放网址| 欧美性一二三区| 国产黑丝一区二区| 亚洲色图欧美| 国产精品国模大尺度私拍| 毛片免费不卡| 欧美色图在线观看| av激情在线观看| 裸体一区二区三区| 欧美日韩中文字幕在线播放| 国产成人在线中文字幕| 久久夜色精品国产亚洲aⅴ| 伊人久久中文字幕| 亚洲精品第1页| 久久久久xxxx| 日韩在线视屏| 国产精品jizz在线观看麻豆| 免费在线观看av片| 亚洲精品在线网站| 特级片在线观看| 91麻豆高清视频| 国产精品沙发午睡系列| 91久久夜色精品国产按摩| 超碰97网站| 在线观看的毛片| 99riav在线| 狠狠躁夜夜躁人人躁婷婷91| 午夜精品久久久久久久99热影院| 精品国产一区二区三区小蝌蚪| 成人免费午夜电影| 精品麻豆一区二区三区| 欧美日韩dvd在线观看| 久久免费公开视频| 中文字幕精品三区| 爱情岛论坛vip永久入口| 欧美日韩亚洲一区在线观看| 91传媒视频免费| 香蕉久久免费电影| 97超碰国产精品女人人人爽| 欧美人xxx| 亚洲人成电影在线观看天堂色| www黄色网址| 精品视频1区2区3区| 国产黄色片免费看| 91亚洲国产成人精品一区二区三 | 一本久久精品一区二区| 成年人av电影| 亚洲图片你懂的| 五月天婷婷丁香网| 久久综合色8888| 久久综合久久色| 精品久久久久久久久久久下田| 成人欧美视频在线| 成人超碰在线| 欧美裸体xxxx极品少妇| 免费在线观看av片| 色av中文字幕一区| 999久久久久| 欧美日韩精品一区二区天天拍小说 | 91九色鹿精品国产综合久久香蕉| 国产日韩在线看片| 在线视频中文字幕第一页| 中文字幕九色91在线| 巨骚激情综合| 亚洲欧美制服另类日韩| 成人av电影天堂| 久草资源在线| 丝袜亚洲欧美日韩综合| av每日在线更新| 国产亚洲免费的视频看| 日本一本草久在线中文| 日韩av影视综合网| 亚洲 欧美 自拍偷拍| 日韩av在线网页| 亚洲av激情无码专区在线播放| 精品国产髙清在线看国产毛片| 精品国产av鲁一鲁一区| 欧美一级精品大片| 亚洲国产福利视频| 精品成人一区二区三区四区| 免费观看国产视频| 欧美性xxxxxx| 亚洲婷婷综合网| 中文字幕在线一区二区三区| 丁香六月激情综合| 国产精品国产a级| 朝桐光av在线| 亚洲国产sm捆绑调教视频| 国产美女永久免费无遮挡| 中文字幕免费不卡| 四虎永久免费地址| 亚洲美女淫视频| 国产在线一二区| 最好看的中文字幕久久| wwwav国产| 午夜精彩视频在线观看不卡| 久久精品无码av| 欧美人牲a欧美精品| www.麻豆av| 国产丝袜一区二区三区| 91在线网址| 欧美高清自拍一区| 男人的天堂在线视频免费观看| 久久亚洲成人精品| 国产高清视频色在线www| 美女av一区二区三区| 暧暧视频在线免费观看| 国产成人在线一区二区| 精品国产三区在线| 国产精品久久久一区| 国产精品迅雷| 成人黄色中文字幕| 欧美自拍一区| 一区二区三区av| 亚洲精选在线| 国产精品入口芒果| 欧美色一级片| 四虎永久在线精品无码视频| 裸体一区二区三区| 在线免费观看a级片| 国产精品国产三级国产aⅴ入口 | 天天干天天草天天射| 4438成人网| 日韩a级作爱片一二三区免费观看| 中文字幕亚洲在线| 国产色播av在线| 成人黄色影片在线| 久久99国产精一区二区三区| 青青在线视频免费观看| 石原莉奈在线亚洲二区| 人妻熟女一二三区夜夜爱| 亚洲每日更新| 中文字幕视频三区| 久久精品亚洲麻豆av一区二区| 欧美成人aaa片一区国产精品| 色94色欧美sute亚洲线路二| 好看的av在线| 日韩欧美一区二区三区久久| 国产精品视频a| 7777女厕盗摄久久久| 欧美理论在线观看| 久久久久久亚洲| 精品午夜视频| 亚洲蜜桃在线| 久久精品青草| 欧美在线观看视频网站| 日本不卡一二三区黄网| 影音先锋黄色资源| 亚洲综合色自拍一区| 国产一区二区在线播放视频| 亚洲人成在线一二| 小h片在线观看| 国产精品美女久久久久av福利| 午夜av一区| 婷婷激情四射五月天| 国产亚洲精品超碰| 中文字幕一区二区人妻电影| 亚洲精品久久7777777| 日韩影视在线| 99免费在线视频观看| 午夜天堂精品久久久久| 久久精品久久99| 亚洲欧洲av一区二区三区久久| 中文字幕久久久久| 日韩免费看网站| 青青青草网站免费视频在线观看| 欧美激情在线观看视频| 亚洲成人偷拍| 欧美日韩午夜爽爽| 国产丶欧美丶日本不卡视频| 女~淫辱の触手3d动漫| 国产精品久久久久婷婷| 久草视频在线免费看| 欧美一级一区二区| 黄色软件在线| 国产激情综合五月久久| 精品freesex老太交| 妓院一钑片免看黄大片| 欧美激情在线看| 久久久久无码国产精品| 精品日韩在线一区| www.av在线播放| 国产一区二区香蕉| 一本到12不卡视频在线dvd| 色18美女社区| 一区二区三区免费在线观看| 午夜免费福利视频| 久久人人看视频| 日韩在线麻豆| 天天影视综合色| 自拍偷自拍亚洲精品播放| jlzzjlzz亚洲女人18| 亚洲区在线播放| 成人日韩av| 久久久av水蜜桃| 肉色丝袜一区二区| 丰满大乳奶做爰ⅹxx视频| 色婷婷狠狠综合| av中文天堂在线| 99精品欧美一区二区三区| 99pao成人国产永久免费视频| 日本不卡一区二区在线观看| 亚洲精品ww久久久久久p站| 欧美 中文字幕| 国产精品高潮粉嫩av| 日韩av字幕| 污网站免费在线| 亚洲在线成人精品| 免费福利在线观看| 亚洲综合一区二区不卡| 亚洲深爱激情| 折磨小男生性器羞耻的故事| 一本大道久久a久久综合| 男人的天堂在线视频免费观看 | 在线观看中文字幕码| 欧美日韩电影在线观看| 亚洲妇女av| 好吊妞无缓冲视频观看| 日本一区二区三区四区在线视频 | 激情综合网最新| 日本熟妇毛耸耸xxxxxx| 日韩一区av在线| 欧美一区 二区| 真实乱偷全部视频|