编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序。作为语法的基础,它规定了诸如变量名是什么样的、怎么写注释,以及程序语句之间如何分隔等规则。
2.1程序的文本
JS区分大小写
JS忽略程序记号(token)之间的空格,和换行符。
2.2注释
// 单行注释
/* */ 多行注释
2.3字面量/直接量(literal)
所谓直接量(literal),就是程序中直接使用的数据值。
2.4标识符和保留字
就是一个名字。JS中标识符必须以字母,下划线,或美元符号开头。后续可以是字母,数字,下划线或美元符号。
保留字:简单的方法是不要使用保留字。 但是 from,set,和target除外,因为安全且常见。
好的方法是用带下划线的标识符,既可以表意,又不会冲突。
2.5Unicode
可以使用unicode做标识符,不建议使用。
2.5.1Unicode转义序列
\u00e9 或者 \u{E9}
2.5.2 Unicode归一化
非ASCII字符允许同一个字符用不同的编码标识。 \u00E9和\u0301实际屏幕显示相同。
Unicode标准为字符定义了首选编码并规定了归一化例程。这个JS并不负责,需要单独的进行Unicode归一化。
可选的分号
应当尽量使用分号,分隔语句。
JS用分号分隔语句。可以省略。
两条语句分在两行,原则可以省略分号。
程序末尾 有大括号,也可以省略分号。
分行系统不会自动添加分号, 只有在不添加分号无法解析是才添加语句件的分号。《尽量在语句间加分号的原因》
可以防御性的在语句前面增加分号
;[x, x+1,x+2].forEach(console.log)// 防御:保证这条语句的独立。
<分行系统不会自动添加分号, 只有在不添加分号无法解析是才添加语句件的分号。>的例外:
1,return, throw, yield,break,continue可以单独作为语句,也可以跟随其他表达式。这种情况下,这些保留字后的换行符会强制转化为分号,标识单独一句。
2,++和--操作符,必须与自己操作的表达式位于一行。 a++不能分行。
3,箭头 =>必须和参数列表在同一行。