js 词法结构

js 的词法结构是一套基本规则,用来描述如何使用 js 编程。它规定了如何变量名长什么样,如何写注释以及程序语句之间如何分隔。

字符集 (JavaScript 权威指南)

区分大小写

标识符

关键字、变量名、函数名、函数参数和所有标识符都是采用一致的大小写。

  • 第一个字符必须是一个字母、下划线(_)或一个美元符($);
  • 其它字符可以是字母、下划线、美元符号或者数字
  • 驼峰命名法

关键字

js 没有使用但保留的关键字

class const enum export extends import super

保留字

  • js 已经使用的的关键字
1
2
3
4
5
6
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
  • 严格模式下的保留字
1
2
3
4
implements let private public yield
interface package protected static
arguments eval
  • js 尽量避免使用的标识符
1
2
3
4
5
6
abstract double goto native atatic
boolean enum implements package super
byte export import private synchronized
char extends int protected throws
class final interface public transient
const float long short volatiole
  • js 预定义的全局变量和函数名
1
2
3
4
5
6
arguments encodeURI Infinity Number RegExp
encodeURICompnent Array isFinite Object String
Boolean Error isNaN parseFloat SyntaxError
Date eval JSON parseInt TypeError
decodeURI EvalError Math RangeError undefined
decodeURIComponent Function NaN ReferenceError URIError

空格、换行符、格式控制

  • \u0020 空格符
  • \u0009 水平制表符
  • \u000B 垂直制表符
  • \u000C 换页符
  • \u00A0 不中断空白符
  • \uFEFF 字节标记
  • \u000A 换行符
  • \u000D 回车符
  • \u2028 行分隔符
  • \u2029 段分隔符
  • \u200F 格式控制符
  • \u200E 格式控制符
  • \u200D 零宽连接符
  • \uFEFF 零宽非连接符

注释

  • 单行注释
1
//单行注释
  • 单行段落注释
1
/*这里是一个段落注释*/
  • 多行注释
1
2
3
4
/*
* 多行注释
* 这里的注释可以连续写几行
*/

直接量

直接量就是程序中直接使用的数据值,如:

  • 1.2 // 数字
  • “123” // 字符串
  • “string” // 字符串
  • true // 布尔值
  • /^/w+/g // 正则表达式直接量
  • null // 空
  • {name:"Hiraku",age:12} // 对象
  • [1,2,4] // 数组

分号的问题

JavaScritp 使用分号(;)将语句和语句分开。JavaScript 并不是所有换行处都加分号,而是只有在缺少了分号就无法正确解析代码的时候,JavaScript才会填补分号。

如果当前语句和下一行语句无法合并解析,JavaScript 则在第一行后面填补分号,这是通用规则,但是有两个例外,一个是在涉及语句时,如果这三个关键字后紧跟着换行,JavaScript 则会在换行处填补分号。也就是说, return、break 和 continue 语句之后不能直接换行.


感谢您的支持!