ARTS是什么?
Algorithm:每周至少做一个leetcode的算法题;
Review:阅读并点评至少一篇英文技术文章;
Tip:学习至少一个技术技巧;
Share:分享一篇有观点和思考的技术文章。
Algorithm
LeetCode 312. Burst Balloons 思路分析总结
Review
两篇关于 JavaScript Promise 的文章:
Understanding promises in JavaScript
Understanding async-await in Javascript
第一篇文章讲的是关于 Promise 的工作原理和使用方法:
- Promise 里面所有的函数的返回值也都是 Promise
- Promise 有三个状态
- pending
- resolve
- reject
- 对应到上面的 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 定义范式,在这里罗列操作符的定义和一些核心规则
操作符:
- 空格 : 用来分隔定义中的各个元素
- / : 用来表示可选项
- 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 年来,所看到的一些东西,希望对你们有所帮助。