ARTS是什麼?
Algorithm:每週至少作一個leetcode的算法題;
Review:閱讀並點評至少一篇英文技術文章;
Tip:學習至少一個技術技巧;
Share:分享一篇有觀點和思考的技術文章。javascript
Algorithm
LeetCode 312. Burst Balloons 思路分析總結java
Review
兩篇關於 JavaScript Promise 的文章:
算法
Understanding promises in JavaScript編程
Understanding async-await in Javascriptc#
第一篇文章講的是關於 Promise 的工做原理和使用方法:promise
- Promise 裏面全部的函數的返回值也都是 Promise
- Promise 有三個狀態
- 對應到上面的 resolve 和 reject,promise 有三個響應機制(函數)
- then(當 promise 的狀態是 resolve 的時候執行)
- catch(當 promise 的狀態是 reject 的時候執行)
- finally(無論 promise 狀態是什麼都執行)
- Promise.all(iterable)
- 這個函數會異步執行多個 Promise
- 返回 resolve 的 promise 當輸入執行完全部輸入promise或輸入爲空
- 返回 reject 的 promise 當遇到第一個 reject
- Promise.race(iterable)
- 返回第一個獲得的 resolve 或者 reject 的promise
第二篇文章講的是 Promise 的語法糖 async 和 await 的工做原理和使用方法:網絡
- await 表示的表達式只能被定義在 async 表示的函數中
- async 表示的函數的返回值是 promise 類型,即便你的返回值不是 promise,它也會自動將返回值包裹成 promise 的形式
- await 的做用只是阻斷了程序的繼續執行,直到其修飾的 promise 被 resolve
- 在循環中使用 await 時要很是當心,考慮是否可使用 Promise.all 來 parallel 運行,否則的話,效率會受到很大影響
- 使用 await 注意使用 try catch 來進行異常的檢測和處理
Tip
最近學習了網絡當中的 ABNF 定義範式,在這裏羅列操做符的定義和一些核心規則異步
操做符:async
- 空格 : 用來分隔定義中的各個元素
- / : 用來表示可選項
- foo/bar ; 表示 foo 和 bar 兩者選一
- %c##-## : 表示範圍
- DIGIT = %x30-35 = "1" / "2" / "3" / "4" / "5"
- () : 表示組合,括號裏面的東西視爲單個元素
- ; : 註釋
- * : 用來表示變量重複的個數
- 2*5element ;表示 element 被容許的個數是 2-5 個
- *element ;表示 element 被容許的個數是任意個,包括 0 個
- 2*2element ;表示 element 被容許的個數是 2 個,等效於 2element
- [] : 表示可選,等效於 *1()
核心規則: 規則名字是大小寫不敏感的函數
- ALPHA = %41-5A / %x61-7A ; A-Z / a-z
- BIT = "0" / "1"
- CHAR = %x01-7F ; excluding NUL
- CR = %x0D ; carriage return
- CRLF = CR LF ; Internet standard newline
- CTL = %x00-1F / %x7F ; controls
- DIGIT = %x30-39 ; 0-9
- DQUOTE = %x22 ; " double quote
- HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
- HTAB = %x09 ; horizontal tab
- LF = %x0A ; linefeed
- SP = %x20
- WSP = SP / HTAB ; white space
- LWSP = *(WSP / CRLF WSP) ; do not use when defining mail headers and use with caution in other contexts
- OCTET = %x00-FF ; 8 bits of data
- VCHAR = %x21-7E ; visible (printing) characters
Share
此次寫的是本身接觸編程不到 3 年來,所看到的一些東西,但願對大家有所幫助。
談談學習編程過程當中的意識誤區