js 的词法结构是一套基本规则,用来描述如何使用 js 编程。它规定了如何变量名长什么样,如何写注释以及程序语句之间如何分隔。
字符集(JavaScript权威指南)
区分大小写
标识符
关键字、变量名、函数名、函数参数和所有标识符都是采用一致的大小写。
- 第一个字符必须是一个字母、下划线(_)或一个美元符($);
- 其它字符可以是字母、下划线、美元符号或者数字
- 驼峰命名法
关键字
js 没有使用但保留的关键字
class const enum export extends import super
保留字
- js已经使用的关键字
1 | break delete function return typeof |
- 严格模式下的保留字
1 | implements let private public yield |
- js 尽量避免使用的标识符
1 | abstract double goto native atatic |
- js 预定义的全局变量和函数名
1 | arguments encodeURI Infinity Number RegExp |
空格、换行符、格式控制
\u0020
空格符\u0009
水平制表符\u000B
垂直制表符\u000C
换页符\u00A0
不中断空白符\uFEFF
字节标记\u000A
换行符\u000D
回车符\u2028
行分隔符\u2029
段分隔符\u200F
格式控制符\u200E
格式控制符\u200D
零宽连接符\uFEFF
零宽非连接符注释
- 单行注释
1 | //单行注释 |
- 单行段落注释
1 | /*这是一个段落注释*/ |
- 多行注释
1 | /* |
直接量
直接量就是程序中直接使用的数据值,如:
- 1.2 // 数字
- “123” // 字符串
- “string” // 字符串
- true // 布尔值
- /^/w+/g // 正则表达式直接量
- null // 空
{name:"Hiraku",age:12}
// 对象[1,2,4]
// 数组
分号的问题
JavaScritp 使用分号(;)将语句和语句分开。JavaScript 并不是所有换行处都加分号,而是只有在缺少了分号就无法正确解析代码的时候,JavaScript才会填补分号。
如果当前语句和下一行语句无法合并解析,JavaScript 则在第一行后面填补分号,这是通用规则,但是有两个例外,一个是在涉及语句时,如果这三个关键字后紧跟着换行,JavaScript 则会在换行处填补分号。也就是说, return、break 和 continue 语句之后不能直接换行.