2.1
字符集:JavaScript是用Unicode字符集编写的。
2.1.1:
JavaScript是区分大小写的语言。也就是说,关键字、变量、函数名和所有的标识付都必须采用一致的大小写形式。比如关键字”while”必须写成”while”而不能写成”While”或”WHILE”。
2.1.2: 空格、换行符和格式控制符
JavaScript会忽略程序中标识之间的空格。多数情况下,JavaScript同样会忽略换行符。由于可以在代码中随意使用空格和换行,一次可以采用整齐,一直的缩进来形成统一的编码风格,从而提高代码的可读性。
2.1.3: Unicode转义序列
有些计算机硬件和软件里,无法显示或输入Unicode字符全集。为了支持使用老旧技术的程序员,JavaScript定义了一种特殊的序列,使用6个ASCII字符来代表任意的16位Unicode内码。这些Unicode转义序列均已\u为前缀,其后跟随4个十六进制数(使用数字以及大小或小写字符A~F表示)。这种Unicode转义写法可以用在JavaScript字符串直接量、正则表达式和标识符中(关键字除外)。例如字符é的Unicode转义写入为\u00E9,如下两个JavaScript字符串是完全一样的:
“café” === “caf\u00e9” // => true
2.2 注释
JavaScript支持两种注释:
// 单行注释
/**/ 多行注释
多行注释可以跨行编写,单不能有嵌套的注释。
2.3 直接量
所谓直接量,就是程序中直接使用的数据值。下面列出的都是直接量:
12 // 数字
1.2 // 小数
“hello word” // 字符串文本
true // 布尔值
false // 另一个布尔值
/javascript/gi // 正则表达式直接量(用作模式匹配)
null // 空
2.4 标识符和保留字
标识符就是一个名字,在JavaScript中,标识符用来对变量和函数进行命名,或者用作JavaScript代码中某些循环语句中的跳转位置的标记。JavaScript 标识符必须以字母、下划线(_)或美元福($)开始,后续的字符可以是字符、数字、下划线或美元符(数字是不允许作为首字母出现的,以便JavaScript可以轻易区分开标识符和数字)。
下面是合法的标识符:
i
my_demo
b12
_dumo
$str
JavaScript允许标识符中出现Unicode字符全集中的字母和数字例如:
var sā = true
JavaScript中的保留字不能作为标识符和函数名
2.5 可选的分号:
JavaScript使用分号(;)将语句分割开。,如果语句独自各站一行,通常可以省略语句之间的分号。
如下代码,因为两条语句用两行书写,第一个语句的分号是可以省略掉的
b = 3
b = 4
如果按照如下格式书写,第一个分号则不能省略掉:
a = 3; v = 4;
需要注意的是,JavaScript并不是在所有换行出都自动填补分号,只有在缺少了分号就无法正确解析代码的时候,JavaScript才会自动填补分号。 如果当前语句和随后的非空格字符不能当成一个整体来解析的话,JavaScript就在当前语句执行结束处填补分号。
var a
a
=
3
console.log(a)
JavaScript将其解析为:
var a; a = 3; console.log(a);
JavaScript给第一行换行出添加了分号,因为如果没有分号,JavaScript就无法解析代码 var a a .第二个a可以单独当做一条语句"a;",但JavaScript没有给第二行结尾处填补分号,因为他可以和但第三内容一起解析成"a=3;"。
通常来讲,如果一条语句以"("、“]”、“/”、“+”或“-”开始,那么他极有可能和前提条语句何在一起解析。
var x = 0 // 这里省略了分号
;[x,x+1,x+2].forEach(console.log) // 前面的分号保证了语句的正确解析
如果语句前面没加分号,并且当前语句和下一行语句也无法合并解析,JavaScript则在第一行后填补分号,这是通用规则,但是有两个例外,第一个例外是涉及return、breack、continue语句
如:
return
true;
JavaScript会解析为:
return ; true;
而你的本意是:
return true;
也就是说,在return、breack、continue和随后的表达式之间不能有换行符。
第二个例外:
如果在涉及到“++” 和 “--”的时候。这些运算符可以作为表达式的前缀,也可以作为表达式的后缀。如果将其用作后缀表达式,他和表达式应该在同一行。否则,行尾将填补分号,同事“++” 或 “--” 将会作为下一行代码的前缀操作符并与之一起解析,例如:
x
++
y
JavaScript或解析为:"x;++y",而不是"x++;y;"
字符集:JavaScript是用Unicode字符集编写的。
2.1.1:
JavaScript是区分大小写的语言。也就是说,关键字、变量、函数名和所有的标识付都必须采用一致的大小写形式。比如关键字”while”必须写成”while”而不能写成”While”或”WHILE”。
2.1.2: 空格、换行符和格式控制符
JavaScript会忽略程序中标识之间的空格。多数情况下,JavaScript同样会忽略换行符。由于可以在代码中随意使用空格和换行,一次可以采用整齐,一直的缩进来形成统一的编码风格,从而提高代码的可读性。
2.1.3: Unicode转义序列
有些计算机硬件和软件里,无法显示或输入Unicode字符全集。为了支持使用老旧技术的程序员,JavaScript定义了一种特殊的序列,使用6个ASCII字符来代表任意的16位Unicode内码。这些Unicode转义序列均已\u为前缀,其后跟随4个十六进制数(使用数字以及大小或小写字符A~F表示)。这种Unicode转义写法可以用在JavaScript字符串直接量、正则表达式和标识符中(关键字除外)。例如字符é的Unicode转义写入为\u00E9,如下两个JavaScript字符串是完全一样的:
“café” === “caf\u00e9” // => true
2.2 注释
JavaScript支持两种注释:
// 单行注释
/**/ 多行注释
多行注释可以跨行编写,单不能有嵌套的注释。
2.3 直接量
所谓直接量,就是程序中直接使用的数据值。下面列出的都是直接量:
12 // 数字
1.2 // 小数
“hello word” // 字符串文本
true // 布尔值
false // 另一个布尔值
/javascript/gi // 正则表达式直接量(用作模式匹配)
null // 空
2.4 标识符和保留字
标识符就是一个名字,在JavaScript中,标识符用来对变量和函数进行命名,或者用作JavaScript代码中某些循环语句中的跳转位置的标记。JavaScript 标识符必须以字母、下划线(_)或美元福($)开始,后续的字符可以是字符、数字、下划线或美元符(数字是不允许作为首字母出现的,以便JavaScript可以轻易区分开标识符和数字)。
下面是合法的标识符:
i
my_demo
b12
_dumo
$str
JavaScript允许标识符中出现Unicode字符全集中的字母和数字例如:
var sā = true
JavaScript中的保留字不能作为标识符和函数名
2.5 可选的分号:
JavaScript使用分号(;)将语句分割开。,如果语句独自各站一行,通常可以省略语句之间的分号。
如下代码,因为两条语句用两行书写,第一个语句的分号是可以省略掉的
b = 3
b = 4
如果按照如下格式书写,第一个分号则不能省略掉:
a = 3; v = 4;
需要注意的是,JavaScript并不是在所有换行出都自动填补分号,只有在缺少了分号就无法正确解析代码的时候,JavaScript才会自动填补分号。 如果当前语句和随后的非空格字符不能当成一个整体来解析的话,JavaScript就在当前语句执行结束处填补分号。
var a
a
=
3
console.log(a)
JavaScript将其解析为:
var a; a = 3; console.log(a);
JavaScript给第一行换行出添加了分号,因为如果没有分号,JavaScript就无法解析代码 var a a .第二个a可以单独当做一条语句"a;",但JavaScript没有给第二行结尾处填补分号,因为他可以和但第三内容一起解析成"a=3;"。
通常来讲,如果一条语句以"("、“]”、“/”、“+”或“-”开始,那么他极有可能和前提条语句何在一起解析。
var x = 0 // 这里省略了分号
;[x,x+1,x+2].forEach(console.log) // 前面的分号保证了语句的正确解析
如果语句前面没加分号,并且当前语句和下一行语句也无法合并解析,JavaScript则在第一行后填补分号,这是通用规则,但是有两个例外,第一个例外是涉及return、breack、continue语句
如:
return
true;
JavaScript会解析为:
return ; true;
而你的本意是:
return true;
也就是说,在return、breack、continue和随后的表达式之间不能有换行符。
第二个例外:
如果在涉及到“++” 和 “--”的时候。这些运算符可以作为表达式的前缀,也可以作为表达式的后缀。如果将其用作后缀表达式,他和表达式应该在同一行。否则,行尾将填补分号,同事“++” 或 “--” 将会作为下一行代码的前缀操作符并与之一起解析,例如:
x
++
y
JavaScript或解析为:"x;++y",而不是"x++;y;"