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

5個你應該知道的JavaScript技巧,不能錯過!

開發 前端
本文將介紹JavaScript的一系列技巧,而這些技巧能將讀者打造為一名更好的開發人員,并增強JavaScript技能。

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

JavaScript是目前最流行的編程語言之一。就像任何其他編程語言一樣,它有許多讓人馬上就能學會的小技巧。

每一個技巧都能完成大多數開發人員每天需要完成的工作。根據經驗,讀者可能已經知道了其中一些,然而仍會對其他的技巧大吃一驚。

本文將介紹一系列技巧,而這些技巧能將讀者打造為一名更好的開發人員,并增強JavaScript技能。

我們一起來看看吧~

[[321076]]

1. 對象解構

開發人員一旦了解了對象解構,就可能每天都會用到。

但什么是解構呢?

解構是一個JavaScript表達式,允許將數組、對象、映射和集合中的數據提取到其自己的變量中。它允許您一次從一個或多個對象中提取屬性。

一起看看以下示例,其中有一個用戶對象。如果要將用戶名(name)存儲在變量中,則必須將其賦給新行上的變量。如果想把性別(gender)也存儲在一個變量中,就必須重復上述操作。

  1. const user = { 
  2.     name: 'Frank', 
  3.     age: 23, 
  4.     gender: 'M', 
  5.     member: false 
  6. }const name = user.name 
  7. const gender = user.gender 

使用解構,就可以通過以下語法直接獲取對象屬性的變量:

  1. const { name, age, gender, member }= user;console.log(name)   // Frank 
  2. console.log(age)    // 23 
  3. console.log(gender) // M 
  4. console.log(member) // false 

2. 使用設備性能以更好地調試

作為一名開發人員,做的最多的事情就是調試。但是調試不僅僅是使用console.log在控制臺打印出一堆日志信息這么簡單。

知道控制臺對象有分析代碼片段性能的好辦法嗎?大多開發人員只知道用標準的console.log方法來調試代碼。

控制臺對象有很多有用的功能。它有一個time和timeEnd函數,可以幫助分析性能。其工作原理非常簡單。

在被測試的代碼前調用console.time函數。此函數有一個參數,接受一個描述被分析內容的字符串。在被測試代碼的末尾,調用console.timeEnd函數。給這個函數與第一個參數相同的字符串。然后,運行代碼所需的時間將會在控制臺中顯示。

  1. console.time('loop')  for (let i = 0; i < 10000; i++) {   
  2.     // Do stuff here 
  3. }  console.timeEnd('loop') 

3. Every和 some函數

Every和some函數并不是為所有開發人員熟知。然而,它們在某些情況下非常有用。先來講講every函數。如果想要知道數組中的所有元素是否都通過了某個測試,那就可以應用此函數。本質上,這是在遍歷數組中的每個元素,并且檢查它們是否屬性都為真。

這聽起來可能有些抽象,所以請看以下示例。并沒有那么復雜。

  1. const random_numbers = [ 13, 2, 37,18, 5 ] 
  2. const more_random_numbers = [ 0, -1, 30, 22 ]const isPositive = (number) =>
  3.   return number > 0 
  4. }random_numbers.every(isPositive); // returns true 
  5. more_random_numbers.every(isPositive); // returns false 

Every函數返回一個布爾值。如果數組中的所有元素都通過了測試,則返回“真”(true)。如果數組中的某個元素未通過測試,則返回“假” (false)。

也可以使用一個匿名函數作為測試函數:

  1. random_numbers.every((number) =>
  2.     return number > 0 
  3. }) 

some函數與every函數的工作原理幾乎完全相同。兩個函數只有一個主要區別:some函數測試的是數組中是否至少有一個元素通過了測試。

回顧上述實例,如果使用some函數而不是every函數,那么兩個數組都將返回“真”(true),因為兩個數組都包含一個正數。

  1. const random_numbers = [ 13, 2, 37,18, 5 ] 
  2. const more_random_numbers = [ 0, -1, 30, 22 ]const isPositive = (number) =>
  3.   return number > 0 
  4. }random_numbers.some(isPositive); // returns true 
  5. more_random_numbers.some(isPositive); // returns true 

4. 有條件地設置一個變量

有條件地設置一個變量很簡單,而且能使代碼更漂亮。在應用這個技巧的時候并不需要編寫if語句——這是筆者最喜歡的JavaScript技巧之一。

所以要如何有條件地設置一個變量?

  1. const timezone =user.preferred_timezone || 'America/New_York' 

上述例子是檢查用戶是否有首選時區。如果用戶有首選時區,則使用該時區。如果用戶沒有首選時區,則使用默認時區,即“美國/紐約”(‘America/New_York’)。

這段代碼看起來比使用if語句要干凈得多。

  1. let timezone = 'America/New_York'if(user.preferred_timezone) { 
  2.     timezone = user.preferred_timezone 

更簡潔了,不是嗎?

[[321077]]

來源:Pexels

5. 將值轉換為字符串數組

有時需要將所有的值轉換為字符串數組。例如,當使用Triple equal(===)運算符檢查數組中是否存在某個數字時,可能會出現這種情況。

筆者最近遇到了一個問題,其包含multi-select控件。Select選項的HTML值是字符串而不是整數,而這是有意義的,選定值的數組如下所示:

  1. let selected_values = [ '1', '5','8' ] 

問題在于,沒能成功檢查所選值的數組中是否存在某個整數。筆者使用了一個Intersect函數,它使用了triple equals(===)運算符。并且由于‘5’ !== 5 ,而必須找到一個解決辦法。

在筆者看來,最漂亮的解決方案是將數組中的所有值都轉換為整數。當筆者進行嘗試時,偶然間發現了一個極其簡單,卻又漂亮的解決辦法。

  1. selected_valuesselected_values = selected_values.map(Number)// [ 1, 5, 8 ] 

與將所有值轉換為整數不同,可以通過簡單地更改map函數的參數,將數組中的值轉化為布爾值。

  1. selected_valuesselected_values =selected_values.map(Boolean) 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2014-03-04 09:35:45

JavaScript調試

2024-11-12 14:56:07

2013-01-09 13:55:43

2011-03-25 15:56:58

2022-06-29 10:06:27

Webpack優化技巧前端

2017-06-06 11:59:26

Docker工具容器

2021-04-12 15:54:45

Android 開發技巧

2021-10-25 14:55:38

Linux技巧命令

2020-03-27 12:30:39

python開發代碼

2021-06-26 10:04:23

Code特性技巧

2024-04-03 10:29:13

JavaScrip優化技巧

2023-07-07 14:47:46

JavaScript技巧

2018-10-17 09:00:00

JavaScript工具前端

2022-10-10 23:14:40

JavaScrip對象屬性

2022-04-28 08:41:53

JavaScript數組

2020-05-27 10:38:16

開發代碼技巧

2020-03-05 12:12:54

數據Python開發

2021-10-09 10:50:30

JavaScript編程開發

2010-05-24 14:06:31

JavaScript

2012-02-13 13:44:46

JavaScript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: h片在线看| 国产精品一区视频 | 国产一级电影网 | 国产免费一区二区三区网站免费 | 91成人免费| 断背山在线观看 | 欧美日韩一区在线 | 日韩欧美一区二区三区 | 欧美久久一级特黄毛片 | 成人免费看黄网站在线观看 | 国产精品国产三级国产aⅴ中文 | av在线一区二区 | 日本人麻豆| 日韩av在线一区二区 | 成年人在线播放 | 欧美精品一区三区 | 激情的网站 | 一级在线毛片 | 91看片| 国产美女久久久 | 蜜桃传媒一区二区 | 亚洲视频一区在线观看 | 欧美激情精品久久久久久 | 伦理片97| 91精品一区二区三区久久久久久 | 欧美另类视频在线 | 麻豆久久久久久久久久 | 久久久久久国产精品 | 免费99精品国产自在在线 | 丁香六月激情 | 天天色综| 欧美激情精品久久久久久 | 欧美理论片在线观看 | 久久久久久久久久久久久久国产 | 国产色网站 | 国产精品免费视频一区 | 国产精品电影在线观看 | 精品国产欧美一区二区 | 久久精品一区二区三区四区 | 在线视频a | 午夜免费观看网站 |