自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

有時我是真不敢用“解構(gòu)賦值”和“拓展運算符”??!

開發(fā) 前端
解構(gòu)賦值 我相信大家都不陌生,這是一個方便大家開發(fā)的語法,你可以使用 解構(gòu)賦值 從 數(shù)組、對象 中解構(gòu)出對應(yīng) 索引、屬性 所對應(yīng)的值,比如下方對于數(shù)組進行的解構(gòu),可以使用 [] 進行解構(gòu)。

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎(chǔ)是進階的前提是我的初心~

解構(gòu)賦值

解構(gòu)賦值 我相信大家都不陌生,這是一個方便大家開發(fā)的語法,你可以使用 解構(gòu)賦值 從 數(shù)組、對象 中解構(gòu)出對應(yīng) 索引、屬性 所對應(yīng)的值,比如下方對于數(shù)組進行的解構(gòu),可以使用 [] 進行解構(gòu)。

圖片圖片

但是你們真的知道為什么這種寫法能完成解構(gòu)的嗎?想要了解為什么,我們可以看看 V8 的源碼,可以看出,為了通過這種寫法能完成解構(gòu),v8 底層其實做了很多事情。

圖片圖片

其實數(shù)組的解構(gòu),也可以使用 {} 進行解構(gòu)。

圖片圖片

而相比于使用 [] 的解構(gòu),明顯 V8 在為使用 {} 做解構(gòu)時,做的工作就少了很多。

圖片

性能測試

為了證實上述的觀點,我準備了以下的代碼例子,可以看到 [] 耗時是 {} 的三倍以上。

圖片圖片

建議

所以建議大家,在進行大數(shù)量的循環(huán)里,想要對數(shù)組進行解構(gòu)的話,最好是通過 {} 去解構(gòu),這樣減少一點性能損耗。

拓展運算符

拓展運算符 大家也不陌生,也是一個使用起來很方便的語法,主要用在 數(shù)組、對象 上,基本語法如下:

圖片圖片

但是很多人不知道,如果你的數(shù)組數(shù)據(jù)量很大的時候,使用 拓展運算符 會直接崩掉!

圖片圖片

圖片圖片

通過 Babel 編譯后可知,push 方法最終會編譯成 apply

圖片圖片

在查閱了MDN后終于知道了原因,如果按上面方式調(diào)用apply,有超出JavaScript引擎參數(shù)長度上限的風(fēng)險。一個方法傳入過多參數(shù)(比如一萬個)時的后果在不同JavaScript引擎中表現(xiàn)不同

圖片圖片

建議

在數(shù)據(jù)可能量比較大的時候,不應(yīng)該使用拓展運算符,而是因為使用循環(huán)

圖片圖片

或者使用 concat

圖片圖片

責(zé)任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2009-08-12 15:02:49

C#賦值運算符簡單賦值運算符

2009-08-12 15:20:18

C#賦值運算符復(fù)合賦值運算符

2025-02-24 11:16:20

2025-03-05 09:37:03

2020-10-15 08:11:56

JavaScript邏輯運算符

2009-06-21 13:48:05

ShellLinux運算符

2011-07-15 01:34:36

C++重載運算符

2009-08-11 15:51:08

C#運算符算術(shù)運算符

2024-02-26 15:17:20

2017-05-11 16:38:07

javascript邏輯運算符

2013-08-15 16:48:39

.Net基礎(chǔ)

2023-04-10 08:58:13

C#關(guān)系運算符

2025-02-07 00:12:34

C#編程as

2009-11-18 09:02:55

PHP運算符

2025-01-24 08:32:00

運算符C#

2020-12-10 08:11:52

typeof instanceofJS

2021-12-15 10:25:57

C++運算符重載

2009-08-12 09:30:10

C#??運算符

2016-10-14 14:04:34

JAVA語法main

2023-05-11 16:18:17

Angular開發(fā)RxJS
點贊
收藏

51CTO技術(shù)棧公眾號