Javascript – Atom - Types
Atom
Unicode (字符集)
Unicode Blocks
InputElement
- WhiteSpace 空格
- <TAB> Character Tabulation
- <VT> Vertical Line
- <FF> Form Feed
- <SP>
- <NBSP> html根据空格分词,不想让词分根据空格分开,可以使用
- <ZWNBSP> U+FEFF Zero WIDTH NO-BREAK SPACE,BOM –> Bit Order Mask
- <USP>
- LineTerminator 换行符
- <LF> /n
- <CR> Carriage Return 回车 /r
- <LS> LINE SEPARATOR
- <PS> PARAGRAPH SEPARATOR
- Comment 注释
- Token 与word不同,记号标记,JS中有效的东西
- 自己写的,代码包含的有效信息
- Identifier 标识符,以英文字母开头
- 用作变量名,不能与关键字重复
- undefined 全局变量名,修改不了
- 离开全局作用域,便可以使用
- 用作属性的部分,可以与关键字重复
- Future reserved Keywords : enum
- 用作变量名,不能与关键字重复
- Literal 直接量
- Number
- String
- Boolean
- Object
- Null
- Undefined
- Symbol
- Identifier 标识符,以英文字母开头
- 帮助程序形成结构
- Punctuator 符号
- Keywords
- 自己写的,代码包含的有效信息
- WhiteSpace 空格
Types
Number
IEEE 754 Double Float
- Sign(1)
- Exponent(11) 指数,科学计数法
- Fraction(52)
Grammar
- DecimaLiteral
- 0
- 0.
- .2
- 1e3
- BinaryIntegerLiteral
- 0b111
- OctalIntegerLiteral
- 0o10
- HexIntegerLiteral
- 0xFF
- DecimaLiteral
最佳实践
浮点数比较时,需要加精度
Number.MAX_SAFE_INTEGER
Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON
String
Character
Code Point
Encoding
97 .toString(2)
“97.” 是一个合法的Number 01100001
- ASCII
- Unicode
- UCS U+0000 - U+FFFF
- GB
- GB2312
- GBK(GB13000)
- GB18030
- ISO-8859
- BIG5
Grammar
“abc”
- “\x10” –> 8
- “\u000a”
‘abc’
`abc`
1
2
3
4
5var a;
/a/g 正则表达式直接量
(a)
/a/g --> 则表示除法
(a)/a/g
Boolean
- true
- false
Object
- 为什么给对象添加的方法能用在基本类型上?
- 运算符提供了装箱操作,它会根据基础类型构造一个临时对象,使得我们能在基础类型上调用对应对象的方法。
Null
- typeof 下为 Object
Undefined
JavaScript 的代码 undefined 是一个变量,而并非是一个关键字,所以,为了避免无意中被篡改,建议使用 void 0 来获取 undefined 值。
實際上,es5後undefined已經被改為read-only屬性了。 但在局部作用域上,是會被修改的! 如考慮以下函數:
1
const test = () =>{ var undefined = 5; console.log(typeof undefined)//輸出number }
為了避免無意中被竄改,使用void(0)還是比較好的做法 而且在進行代碼壓縮時,undefined也會被換成void(0)