1.大小写:
JavaScript区分大小写。这意味着它的关键字、变量、函数名 和其他标识符必须始终保持一致的大小写形式。
2. 空格:
JavaScript忽略程序记号(token)之间的空格。很大程度上,JavaScript也忽略换行符。因为可以在程序中随意使用空格和换行,所以可以按照便于阅读理解的方式对程序进行格式化和缩进。
除了常规空格(\u0020),JavaScript也将制表符、各种 ASCII控制符和Unicode间格识别为空格。JavaScript将换行符、回车符和回车/换行序列识别为行终止符。
3.注释:
JavaScript支持两种注释:
①单行注释是以 // 开头到一行末尾的内容;
②多行注释位于 /* 和 */ 之间,可以跨行,但不能嵌套。
4.字面量:
字面量(literal)是一种直接出现在程序中的数据值。以下都是字面量:
12
"hello"
true
null
5. 标识符和保留字:
①标识符:
标识符就是一个名字。在JavaScript中,标识符用于在JavaScript代码中命名常量、变量、属性、函数和类,以及为某些循环提供标记(label)。JavaScript标识符必须以字母、下划线(_)或美元符号($)开头。后续字符可以是字母、数字、下划线或美元符号(数字不能作为第一个字符,以便JavaScript区分标识符和数值)。以下都是合法标识符:
i
my_name
v11
$str
②保留字:
1)JavaScript为语言自身使用而保留了某些标识符,这些“保留字”不能作为常规标识符使用。
注意:from、set和target:可以使用这些单词作为标识符,因为使用它们很安全,而且也很常见。
2)JavaScript也保留或限制对某些关键字的使用,这些关键字当前并未被语言所用,但将来某个版本有可能会用到:
3)由于历史原因,某些情况下也不允许用arguments和eval作为标识符,因此最好不要使用。
6. Unicode:
JavaScript程序是使用Unicode字符集编写的,因此在字符串和注释中可以使用任意Unicode字符。考虑到可移植性和易于编辑,建议在标识符中只使用ASCII字母和数字。
const n = 3.15;
const si = true;
7. Unicode转义序列:
某些计算机硬件和软件无法显示、输入或正确处理全部Unicode 字符。为方便程序员编码和支持使用老技术的系统,JavaScript定义了转义序列,从而可以仅使用ASCII字符来表示Unicode字符。
这些Unicode转义序列以\u开头,后跟4位十六进制数字(包括大写或 小写的字母A~F)或包含在一对花括号内的1~6位十六进制数字。 Unicode转义序列可以出现在JavaScript字符串字面量、正则表达式 字面量和标识符中(不能出现在语言关键字中)。
例如,字符“é” 的Unicode转义序列是\u00E9,以下是3种在变量中使用这个字符的 示例:
JavaScript的早期版本只支持4位数字转义序列。带花括号的版 本是ES6新增的,目的是更好地支持大于16位的Unicode码点,比如 表情符号:
console.log("\u{1F600}");//打印一个笑脸符号
Unicode转义序列也可以出现在注释中,但因为注释会被忽略, 所以注释中的转义序列会被作为ASCII字符处理,不会被解释为 Unicode。
8. Unicode归一化:
如果你在程序中使用了非ASCII字符,那必须知道Unicode允许用多种编码方式表示同一个字符。例如,字符串“é”可以被编码为 一个Unicode字符\u00E9,也可以被编码为一个常规ASCII字符“e” 后跟一个重音组合标记\u0301。这两种编码在文本编辑器中看起来 完全相同,但它们的二进制编码不同,因此JavaScript认为它们不同,而这可能导致非常麻烦的问题:
Unicode标准为所有字符定义了首选编码并规定了归一化例程, 用于把文本转换为适合比较的规范形式。JavaScript假定自己解释的源代码已经归一化,它自己不会执行任何归一化。如果你想在 JavaScript程序中使用Unicode字符,应该保证使用自己的编辑器或其他工具对自己的源代码执行Unicode归一化,以防其中包含看起来一样但实际不同的标识符。
9. 可选的分号:
1)①如果没有分隔符,一条语句的结尾可能是另一条语句的开头。
②如果两条语句分别写在两行,通常可以省略它们之间的分号。
③在程序末尾,如果接下来的记号是右花括号},那么也可以省略分号。
2)JavaScript并非任何时候都把换行符当作分号,而只是在不隐式添加分号就无法解析代码的情况下才这么做。JavaScript只在下一个非空格字符无法被解释为当前语句的一部分时才把换行符当作分号。
3)一定不能在return、throw、yield、break和continue等关键字和它们后面的表达式之间加入换行符。
4)涉及++和--操作符。这些操作符既可以放在表达式前面,也可以放在表达式后面。如果想把这两个操作符作为后置操作符,那它们必须与自己操作的表达式位于同一行。涉及使用简洁的“箭头”语法定义的函数:箭头=>必须跟参数列表在同一行。