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

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

黃山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

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

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

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

1. 對象解構(gòu)

開發(fā)人員一旦了解了對象解構(gòu),就可能每天都會用到。

但什么是解構(gòu)呢?

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

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

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

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

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

2. 使用設備性能以更好地調(diào)試

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

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

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

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

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

3. Every和 some函數(shù)

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

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

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函數(shù)返回一個布爾值。如果數(shù)組中的所有元素都通過了測試,則返回“真”(true)。如果數(shù)組中的某個元素未通過測試,則返回“假”  (false)。

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

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

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

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

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'

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

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

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

更簡潔了,不是嗎?

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

來源:Pexels

5. 將值轉(zhuǎn)換為字符串數(shù)組

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

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

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

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

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

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

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

selected_valuesselected_values =selected_values.map(Boolean)

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

本文標題:5個你應該知道的JavaScript技巧分別是哪些
本文來源:http://www.muchs.cn/article14/ghoide.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、用戶體驗網(wǎng)頁設計公司、App開發(fā)服務器托管、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管