## JS 詞法、類型正則表達式
### 預備知識:[unicode]字符集、[Blocks] 編碼組ide
- 0 ~ U+007F:經常使用拉丁字符函數
- `String.fromCharCode(num)`編碼
- U+4E00 ~ U+9FFF:CJK ChineseJapaneseKorean三合一spa
- 有一些增補區域(extension)code
- U+0000 - U+FFFF:[BMP]字符平面映射)) 基本平面orm
- [Categories]blog
- [space空格系列]ip
- 實踐utf-8
- 中文變量名
因涉及到文件的編碼保存方式,使用 `\u十六進制unicode`轉譯(`'厲'.codeCodeAt().toString(16)`)
### Atom 詞
#### InputElement
- whiteSpace
可查閱 unicode [space列表](交流V:(cmL46679910))
- Tab:製表符(打字機時代:製表時隔開數字很方便)
- VT:縱向製表符
- FF: FormFeed
- SP: Space
- NBSP: NO-BREAK SPACE(和 SP 的區別在於不會斷開、不會合並)
- ...
- LineTerminator 換行符
- LF: Line Feed `\n`
- CR: Carriage Return `\r`
- ...
- Comment 註釋
- Token 記號:一切有效的東西
- Punctuator: 符號 好比 `> = < }`
- Keywords:好比 `await`、`break`... 不能用做變量名,但像 getter 裏的 `get`就是個例外
- Future reserved Keywords: `eum`
- IdentifierName:標識符,能夠以字母、_ 或者 $ 開頭,代碼中用來標識**[變量](交流V:(cmL46679910))、[函數]、或[屬性]**的字符序列
- 變量名:不能用 Keywords
- 屬性:能夠用 Keywords
- Literal: 直接量
- Number
- 存儲 Uint8Array、Float64Array
- 各類進制的寫法
- 二進制0b
- 八進制0o
- 十進制0x
- 實踐
- 比較浮點是否相等:Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON
- 如何快捷查看一個數字的二進制:(97).toString(2)
- String
- Character
- Code Point
- Encoding
- unicode編(交流V:(cmL46679910))碼 - utf
- utf-8 可變長度 (控制位的用處)
- Grammar
- `''`、`""`、``` `
- Boolean
- Null
- Undefind
小做業
- 寫一個正則 匹配全部Number直接量
- 完成 UTF8__Encoding 的函數
- 寫一個正則表達式來匹配字符串