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

11個罕見的 JavaScript 單行代碼,會讓你大吃一驚

開發 前端
在今天的文章中,我將與你一起來學習 11 個罕見但功能強大的單行代碼。現在,準備好,讓我們開始吧!

如果你想給專業開發人員留下深刻印象,你會做什么?很簡單:用簡單的邏輯和盡可能少的代碼行來解決一個復雜的問題。隨著 ES6 箭頭函數的引入,可以創建看起來優雅而簡單的單行代碼。

在今天的文章中,我將與你一起來學習 11 個罕見但功能強大的單行代碼。現在,準備好,讓我們開始吧!

1、獲取字符串中的字符數

獲取字符數是一個有用的實用程序,在許多情況下都很有用,我們可以使用它來獲取空格數和隨后的單詞數,或者這可用于獲取字符串中某個分隔符的計數。

const characterCount = (str, char) => str.split(char).length - 1

這個想法很簡單,我們使用傳遞的參數 char 拆分字符串并獲取返回數組的長度。由于每次將字符串拆分,都會比拆分器多一個;所以減去 1,我們有一個 characterCount 單行。

2、檢查對象是否為空

檢查對象的空性實際上比看起來要困難得多,即使對象為空,每次檢查對象是否等于 {} 也會返回 false。

幸運的是,下面的單行代碼正是我們想要的。

const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object

在這一行中,我們檢查對象的鍵長度是否等于 0,以及傳遞的參數是否為實際對象。

3、等待一段時間再執行

在這一行中,我們將通過一些異步編程來弄臟我們的代碼。這個想法很簡單,在運行代碼時,如果你想等待一定的時間,這里是等待單行:

const wait = async (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds));

在等待單行中,我們創建一個承諾并在給定的時間后使用 setTimeout 函數解決它。

4、 獲取兩個日期之間的日差

在開發 Web 應用程序時,日期通常是實現起來最令人困惑的部分,因為有許多概念很容易被誤算。

這是一個強大的單線計算兩個日期之間的天差。但還有更多事情要做,正如我所做的那樣,你可以創建自己的單線來計算月、年差異等。

const daysBetween = (date1, date2) => Math.ceil(Math.abs(date1 - date2) / (1000 * 60 * 60 * 24))

這種單線背后的邏輯很容易理解。當兩個日期相減時,返回值是以毫秒為單位的差值,要將毫秒轉換為天,我們必須將其除以毫秒、秒、分鐘和小時。

5、重定向到另一個 URL

如果你曾經創建過真實的網站,我敢肯定你遇到過身份驗證邏輯。例如,非管理員用戶不應該能夠訪問 /admin 路由。如果用戶嘗試,那么,你必須將其重定向到另一個 URL。

這個單線正是我上面提到的情況,但我認為你可以找到更多的用例。

const redirect = url => location.href = url

location 是全局窗口對象的方法,設置 href 屬性的行為與用戶單擊鏈接相同。

6、檢查設備上的觸摸支持

隨著可以連接到互聯網的設備越來越多,創建響應式網站的必要性也在增加。20 年前,開發者應該考慮網站的桌面版本,但今天超過 50% 的網絡流量來自觸摸移動設備。因此,基于設備的觸控支持采取一些行動是一個非常重要的概念。

const touchSupported = () => ('ontouchstart' in window || DocumentTouch && document instanceof DocumentTouch)

在這一行中,我們正在檢查文檔是否支持 touchstart 事件。

7、 在元素后插入 HTML 字符串

開發 Web 應用程序時,使用 JavaScript 更新 DOM 是一件很常見的事情。有一些基本的方法可以完成工作,但是,當情況變得復雜時,就很難克服。

這是一個在 HTML 元素之后立即注入 HTML 字符串的單行代碼。經過幾分鐘的思考和谷歌搜索,我相信你可以找到這個單線的以前版本。

const insertHTMLAfter = (html, el) => el.insertAdjacentHTML('afterend', html)

8、隨機排列數組

在開發中打亂一組數據是一個常見的情況,你可以隨時遇到,不幸的是,JavaScript 中沒有內置數組的 shuffle 方法。

但是,這里有一個你可以每天使用的 shuffle one-liner:

const shuffle = arr => arr.sort(() => 0.5 - Math.random())

它利用數組的排序方法,在數組的前一個元素之前或之后隨機排序。

9、在網頁上獲取選定的文本

瀏覽器在全局窗口對象上有一個名為 getSelection 的內置方法。使用此方法,你可以創建一個單行,返回網頁上突出顯示或選定的文本。

const getSelectedText = () => window.getSelection().toString()

10、獲取隨機布爾值

在開發時,尤其是在寫游戲代碼時,有時,我們會想隨機采取行動。在這些情況下,下面的單行代碼非常方便。

const getRandomBoolean = () => Math.random() >= 0.5

上面的單行代碼有 50/50 的機會返回真或假。因為生成的隨機數大于0.5的概率等于變小的概率。

然而,例如,如果你想得到一個概率為 70% 的隨機布爾值,那么你可以簡單地將 0.5 更改為 0.7 等等。

11、計算數組的平均值

可以使用多種方法計算數組的平均值。但邏輯對所有人都是一樣的,我們必須得到數組及其長度的總和;然后,通過除法給出平均值。

const average = (arr) => arr.reduce((a, b) => a + b) / arr.length

在平均單行中,我們使用 reduce 來獲取一行中數組的總和,而不是使用循環。然后,我們將它除以數組長度,這是一個數組的平均值。

總結

現在,我想你應該知道了 11 個簡單但功能強大的 JavaScript 單行代碼。我之所以試著選擇那些不太流行和不太知名的技巧,主要是希望,這樣可以幫助你學習新的東西。那些我們每天使用的東西,我想你已經會了。

最后,感謝你的閱讀,如果你喜歡它,覺得它有用的話,請記得點贊我,關注我,如果你對這篇文章有什么要說的,請在留言區告訴我,我們明天見。

責任編輯:龐桂玉 來源: web前端開發
相關推薦

2022-07-12 10:18:05

JavaScript單行代碼

2024-05-10 15:41:22

字符串TypeScrip

2021-09-27 11:13:12

比特幣加密貨幣貨幣

2020-09-10 09:39:56

大數據大數據統計數據

2011-03-29 09:34:38

APP應用程序LBS

2024-04-03 14:17:47

VR虛擬現實增強現實

2024-10-29 08:30:29

2021-06-11 13:20:41

Vivaldi 4.0Linux瀏覽器

2023-10-08 14:35:08

2019-03-15 16:16:15

蘋果ARVR

2023-10-06 12:48:00

數據訓練

2010-07-07 09:34:44

服務器

2023-10-10 16:20:38

JavaScript代碼技巧

2024-10-09 14:45:41

2015-02-11 10:21:07

JavaScript

2016-11-21 17:58:38

大數據安全合規

2010-11-29 15:35:36

云計算經濟學

2022-11-28 23:44:26

JavaScript技巧程序員

2013-01-31 09:26:56

2024-04-22 14:36:14

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 极品在线| 亚洲一区二区三区在线播放 | 久久久久黑人 | 美女视频黄的免费 | 婷婷亚洲综合 | 日韩免费毛片视频 | 成人看片在线观看 | 香蕉视频久久久 | 亚洲一区二区三区免费视频 | 日韩美香港a一级毛片免费 国产综合av | 国产精品久久久久不卡 | 婷婷在线视频 | 一本一道久久a久久精品综合蜜臀 | 中文字幕精品视频 | 91精品国产91 | 一区二区三区精品视频 | 精品亚洲一区二区三区四区五区 | 久久精品欧美一区二区三区不卡 | 欧美日韩高清 | a级在线免费 | 欧美高清一区 | 欧美11一13sex性hd | 日本黄色短片 | 国产一级一片免费播放 | 草草草影院 | 日韩av在线中文字幕 | 欧美日韩亚洲一区 | a毛片| 日韩福利| 日韩影院在线观看 | 国产精品中文字幕在线播放 | 欧美精品网站 | 国产成人精品午夜视频免费 | 日韩激情网 | 黄免费观看视频 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 91中文字幕在线 | 国产高清在线视频 | 欧美福利精品 | 色精品| 亚洲人成在线播放 |