Stories

Detail Return Return

SegmentFault 思否技術週刊 Vol.76 — 破解 Javascript 玩法 - Stories Detail

本期技術週刊一起了解 Javascript,歡迎大家閲讀 ~

文章推薦

淺談 Javascript 閉包 // magnesium

閉包的概念是有很多版本,不同的地方對閉包的説法不一

維基百科:在計算機科學中,閉包(英語:Closure),又稱詞法閉包(Lexical Closure)或函數閉包(function closures),是在支持頭等函數的編程語言中實現詞法綁定的一種技術。

MDN: 閉包(closure)是一個函數以及其捆綁的周邊環境狀態(lexical environment詞法環境)的引用的組合。

個人理解:

  • 閉包是一個函數(返回一個函數)
  • 返回的函數保存了對外變量引用

JS 如何返回異步調用的結果? // 現實的理想技術

在 JS 中處理異步調用的結果,最佳實踐就是“異步轉同步”:使用 Promise + async/await 語法關鍵字。在這裏 async 總是與 await 成對出現,一個 async 函數總是返回一個 Promise,一個 await 關鍵字總是在嘗試“解開”一個 Promise,結局要麼等到有價值的數據,要麼異步出現異步,什麼也沒有等到。為了避免出現異常,影響主線程的正常運行,一般要用 catch 規避異常。

從 await-to-js 到 try-run-js // jump__jump

之前在做 code review 時候發現有同事使用 try catch 包裝了一堆異步代碼,於是個人就覺得很奇怪,難道不應該只 catch 可能出問題的代碼嗎?同事告訴我説 try catch 太細的話會出現內外作用域不一致,需要提前聲明變量。

let res: Data[] = [];

try {
  res = await fetchData();
} catch (err) {
  // 錯誤操作或者終止
  // return
}

// 繼續執行正常邏輯

前端性能優化到底該怎麼做 // 熊的貓

性能指標,如下:

  • 首字節達到時間(Time to First Byte,TTFB
  • 首次繪製(First Paint,FP
  • 首次內容繪製(First Contentful Paint,FCP
  • 首屏時間 / 最大內容繪製(Largest Contentful Paint, LCP
  • 累積佈局偏移(Cumulative Layout Shift, CLS)
  • 首次輸入延遲(First Input Delay, FID

關鍵資源越早到達客户端,證明 TTFB 時間越短,而這也能間接的減少 FPFCP 的時間;對資源進行了壓縮處理意味着能夠儘可能提升 LCP 的時間;減少了頁面的 迴流/重繪 就能使得 CLS 的數值越小,視圖越趨於穩定;FID 是一個用於跟蹤瀏覽器對用户輸入做出反應之前的延遲時間的指標,包括點擊和敲擊,保證資源的快速加載和頁面儘早渲染,其對應的數值就越小,視圖響應就越快。

javaScript 進階之路 --- 《手寫 Promise(中篇)》 // FFF方

至此距離我們完成自己的 MyPromise 類已經成功了一大半!我相信通過消化這一篇的內容,你會收穫很多很多額外的知識。是不是有一種原來 Promise 不過如此的感覺~

其實有很多很多東西都是用很基本的函數,通過很巧妙的設計去完成一些看起來很複雜的邏輯。在下一章我們會迎來最後的幾個關鍵點,如:微任務的創建then 函數的鏈式調用,希望你能堅持下去。

Javascript 變量命名規範 // 一丁目

駝峯命名

首先,和其他語言一樣,大部分變量建議採用駝峯命名法。

var articleTitle = 'javascript變量命名規範' 

而對於常量,使用大寫字母和下劃線來組合命名。

const COUNTRY_NAME = 'China'

問答推薦

  • js 數組漢字排序?
  • js 如何獲取數組元素的前置屬性(如下圖)?
  • js 中擁有相同值的兩個基本數據類型的變量,它們的內存地址相同嗎?
  • 如何優化對象跟數組匹配獲得新數組的算法?
  • js 獲取一串數字中某個數字的索引?
  • 請教一下 js 中這種異步的初始化該怎麼設計?
  • 我想要 trim 掉左邊的# == 和右邊的==,請問 js 如何做到呢?
  • js 需要等待長時間執行的代碼,我需要怎麼處理?
  • js 怎麼刪除 style 中某個類樣式?

# SegmentFault 技術週刊 #

「技術週刊」是社區特別推出的技術內容系列,一週一主題。

每週二更新,歡迎「關注」。大家也可以在評論處留言自己感興趣的主題,推薦主題相關的優秀文章。

如有問題可以添加小姐姐微信~

image.png

user avatar huaihuaidehongdou Avatar kubeexplorer Avatar dengzhanyong Avatar judei Avatar ranck Avatar baidusecrity Avatar xiaohuaihuai_5e74ba460d087 Avatar flydehuli Avatar dantiedan Avatar huolang_5a14e07d2f2ff Avatar
Favorites 10 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.