- unicode编写的
- 转义
- ‘café’表示为’caf\u00e9’
- ‘é’ 也可以表示为’e\u0301’, e后面跟一个语调符
- 区分大小写 # html中不区分大小写
- 注释
- 标识符和保留字
- 要求
- 开头以字母、下划线、dollar符。
- 后续可以加数字
- 可以出现unicode字符集中的Mn类、Mc类、Pc类,如 # Mn表示非间距字符,Mc表示影响基字符标志位的间距字符, Pc是连接两个字符的连接符或标点符号。
- 保留字
- break, delete, function, return, typeof, case, do, if, switch, var, catch, else, in, this, void, continue, false, instanceof, throw, while, debugger, finally, new, true, with, default, for, null, try
- 未被使用的名保留字
- class, const, enum, export, extends, import, super
- 严格模式下的保留字
- implements, let, private, public, yield, interface, package, protected, static
- 严格模式下不能用做变量名
- es6新增保留字
- ECMAScript3将所有java关键字列为保留字
- 全局属性和对象和函数
- 直接量
- 直接量(numeric literal)
- 1
- 1.2
- “hi”
- ‘hi’
- true
- false
- /javascript/gi
- 用于模式匹配
- 实际是一个RegExp对象
- gi是用来修饰匹配模式的含义
- null
- {x:1, y:2}
- {foo} # 等同 {foo: foo}, 简化写法常用于函数返回值
- {method () {}} # 等同 {method: function () {}}
- {*m () {}} # generator
- {[‘a’ + ‘b’]: 1} # object
- {‘hello’{reutrn 0;}} # 对象属性是Symbol值时, name属性返回这个Symbol值的描述
- {get a () {}, set a (val) {}} # 属性getter, setter。get, set函数的函数名name是 ‘get xxx’, ‘set xxx’
- [1,2,3,4]
- 整型直接量
- 0
- 10
- 0xff/0Xff # 16进制
- 0o377 # 8进制
- 0377 # ECMAScript标准不支持八进制直接量,某些实现可以采用八进制表示
- ECMAScript6严格模式下, 八进制直接量是明令禁止的
- 0b11/0B11 # 2进制
- 浮点型直接量
- 3.14
- .333
- 6.02e23 # 6.02 x 10
- 1.4E-32
- 字符串直接量
- ECMAScript5可多行 # ECMAScript3规定必须一行
- 模板字符串 # 保留换行,空格,缩进
- var name = ‘Bob’;
- `hello ${name} # ${}中可用任意表达式,包括函数
- how are you`