0418 - JavaScript课件(一小部分)
JS 词法、类型
预备知识:[unicode] 字符集、[Blocks] 编码组
- 0 ~ U+007F:常用拉丁字符
- String.fromCharCode(num)
- U+4E00 ~ U+9FFF:CJK ChineseJapaneseKorean三合一
- 有一些增补区域(extension)(交流V:(cmL46679910))
- U+0000 - U+FFFF:[BMP]字符平面映射)) 基本平面
- [Categories]
- [space空格系列]
- 实践
- 中文变量名
因涉及到文件的编码保存方式,使用 \u十六进制unicode转译('厉'.codeCodeAt().toString(16))
Atom 词
InputElement
- whiteSpace
可查阅 unicode [space列表]
- Tab:制表符(打字机时代:(交流V:(cmL46679910))制表时隔开数字很方便)
- 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:标识符,可以以字母、_ 或者 $ 开头,代码中用来标识**[变量]、[函数]、或[属性]**的字符序列
- 变量名:不能用 Keywords
- 属性:可以用 Keywords
- Literal: 直接量
- Number(交流V:(cmL46679910))
- 存储 Uint8Array、Float64Array
- 各种进制的写法
- 二进制0b
- 八进制0o
- 十进制0x
- 实践
- 比较浮点是否相等:Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON
- 如何快捷查看一个数字的二进制:(97).toString(2)
- String
- Character
- Code Point
- Encoding
- unicode编码 - utf
- utf-8 可变长度 (控制位的用处)
- Grammar
- ''、""、``` `
- Boolean
- Null
- Undefind
小作业
-
写一个正则 匹配所有Number直接量
-
完成 UTF8__Encoding 的函数
-
写一个正则表达式来匹配字符串