91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

JavaScript 中哪一種循環最快

發布時間:2021-07-12 15:04:42 來源:億速云 閱讀:178 作者:chen 欄目:web開發

這篇文章主要介紹“JavaScript 中哪一種循環最快”,在日常操作中,相信很多人在JavaScript 中哪一種循環最快問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript 中哪一種循環最快”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

究竟哪一種循環更快?

答案其實是:for(倒序)

最讓我感到驚訝的事情是,當我在本地計算機上進行測試之后,我不得不接受 for(倒序)是所有 for  循環中最快的這一事實。下面我會舉個對一個包含超過一百萬項元素的數組執行一次循環遍歷的例子。

聲明:console.time() 結果的準確度在很大程度上取決于我們運行測試的系統配置。你可以在此處對準確度作進一步了解。

const million = 1000000;  const arr = Array(million); console.time('?'); for (let i = arr.length; i > 0; i--) {} // for(倒序)  :- 1.5ms for (let i = 0; i < arr.length; i++) {} // for          :- 1.6ms arr.forEach(v => v)                     // foreach      :- 2.1ms for (const v of arr) {}                 // for...of     :- 11.7ms console.timeEnd('?');

造成這樣結果的原因很簡單,在代碼中,正序和倒序的 for 循環幾乎花費一樣的時間,僅僅相差了 0.1 毫秒。原因是,for(倒序)只需要計算一次起始變量  let i = arr.length,而在正序的 for 循環中,它在每次變量增加后都會檢查條件  i

而 forEach 是 Array 原型的一個方法,與普通的 for 循環相比,forEach 和 for&hellip;of  需要花費更多的時間進行數組迭代。(譯者注:但值得注意的是,for&hellip;of 和 forEach 都從對象中獲取了數據,而原型并沒有,因此沒有可比性。)

循環的類型,以及我們應該在何處使用它們

1. For 循環(正序和倒序)

我想,也許大家都應該對這個基礎循環非常熟悉了。我們可以在任何我們需要的地方使用 for 循環,按照核定的次數運行一段代碼。最基礎的 for  循環運行最迅速的,那我們每一次都應該使用它,對嗎?并不然,性能不僅僅只是唯一尺度,代碼可讀性往往更加重要,就讓我們選擇適合我們應用程序的變形即可。

2. forEach

這個方法需要接受一個回調函數作為輸入參數,遍歷數組的每一個元素,并執行我們的回調函數(以元素本身和它的索引(可選參數)作為參數賦予給回調函數)。forEach  還允許在回調函數中使用一個可選參數 this。

const things = ['have', 'fun', 'coding']; const callbackFun = (item, idex) => {     console.log(`${item} - ${index}`); } things.foreach(callbackFun);  /* 輸出   have - 0 fun - 1 coding - 2  */
3. for&hellip;of

for&hellip;of 是在 ES6(ECMAScript 6)中實現標準化的。它會對一個可迭代的對象(例如 array、map、set、string  等)創建一個循環,并且有一個突出的優點,即優秀的可讀性。

const arr = [3, 5, 7]; const str = 'hello'; for (let i of arr) {    console.log(i); // 輸出 3, 5, 7 } for (let i of str) {    console.log(i); // 輸出 'h', 'e', 'l', 'l', 'o' }

需要注意的是,請不要在生成器中使用 for&hellip;&hellip;of,即便 for&hellip;&hellip;of  循環提前終止。在退出循環后,生成器被關閉,并嘗試再次迭代,不會產生任何進一步的結果。

4. for in

for&hellip;in 會在對象的所有可枚舉屬性上迭代指定的變量。對于每個不同的屬性,for&hellip;in  語句除返回數字索引外,還將返回用戶定義的屬性的名稱。因此,在遍歷數組時最好使用帶有數字索引的傳統 for 循環。因為 for&hellip;in  語句還會迭代除數組元素之外的用戶定義屬性,就算我們修改了數組對象(例如添加自定義屬性或方法),依然如此。

const details = {firstName: 'john', lastName: 'Doe'}; let fullName = ''; for (let i in details) {     fullName += details[i] + ' '; // fullName: john doe }

for&hellip;of 和 for&hellip;in

for&hellip;of 和 for&hellip;in 之間的主要區別是它們迭代的內容。for&hellip;in 循環遍歷對象的屬性,而 for&hellip;of 循環遍歷可迭代對象的值。

let arr= [4, 5, 6]; for (let i in arr) {    console.log(i); // '0', '1', '2' } for (let i of arr) {    console.log(i); // '4', '5', '6' }

結論

  • for 最快,但可讀性比較差

  • foreach 比較快,能夠控制內容

  • for...of 比較慢,但香

  • for...in 比較慢,沒那么方便

到此,關于“JavaScript 中哪一種循環最快”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

绥阳县| 萍乡市| 马龙县| 林周县| 海口市| 德兴市| 嘉峪关市| 郁南县| 阜平县| 聂拉木县| 永嘉县| 泾川县| 双鸭山市| 茶陵县| 莎车县| 新丰县| 攀枝花市| 故城县| 板桥市| 抚宁县| 基隆市| 左权县| 延安市| 阿坝县| 孟津县| 曲阳县| 马边| 濮阳县| 安图县| 托克托县| 左贡县| 获嘉县| 岫岩| 岳西县| 翁牛特旗| 琼结县| 射阳县| 西充县| 隆林| 兴和县| 肥西县|