中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

5個你應該知道的JavaScript技巧分別是哪些

發布時間:2021-09-30 17:19:31 來源:億速云 閱讀:141 作者:柒染 欄目:web開發

這篇文章將為大家詳細講解有關5個你應該知道的JavaScript技巧分別是哪些,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

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

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

5個你應該知道的JavaScript技巧分別是哪些

1. 對象解構

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

但什么是解構呢?

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

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

const user = {     name: 'Frank',     age: 23,     gender: 'M',     member: false }const name = user.name const gender = user.gender

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

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

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

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

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

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

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

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

3. Every和 some函數

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

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

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

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

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

random_numbers.every((number) =>{     return number > 0 })

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

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

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

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

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

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

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

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

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

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

更簡潔了,不是嗎?

5個你應該知道的JavaScript技巧分別是哪些

來源:Pexels

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

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

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

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

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

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

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

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

selected_valuesselected_values =selected_values.map(Boolean)

關于5個你應該知道的JavaScript技巧分別是哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

固始县| 中卫市| 旬阳县| 德格县| 巴青县| 平湖市| 辉南县| 永靖县| 原阳县| 新绛县| 宁波市| 茌平县| 阿瓦提县| 连云港市| 神农架林区| 萨迦县| 健康| 西乌| 叶城县| 陆川县| 兰溪市| 靖安县| 大安市| 镇康县| 平阴县| 手游| 佛山市| 调兵山市| 宣化县| 留坝县| 宁德市| 天柱县| 漳平市| 巴楚县| 东丽区| 大姚县| 手机| 舒兰市| 博罗县| 兴文县| 同仁县|