JavaScript 语法结构

1 字符集

JavaScript 程序是用 Unicode 字符集编写的。Unicode 是 ASCII 和 Latin-1 的超集,并支持地球上几乎所有在用的语言。

1.1 字符的 Unicode 表示法

JavaScript 字符允许采用 Unicode 表示法,但是只限于 Unicode 码点在 \u0000~\uFFFF 之间的字符。超出这个范围的字符,必须用 2 个双字节的形式表示。

'\u0041'    // => "A"
'\u20BB7'   // => "₻7"
'\uD842\uDFB7'  // => "��"

ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符。

'\u{41}'    // => "A"
'\u{20BB7}' // => "��"
'\u{20BB7}' === '\uD842\uDFB7'  // => true

1.2 区分大小写

JavaScript 是区分大小写的语言。所有的标识符(identifier)都必须采取一致的大小写形式。但是Html并不区分大小写(尽管Xhtml区分大小写)。

1.3 空格、换行符和格式控制符

JavaScript 会忽略程序中的标识(token)之间的空格。除了可以识别普通的空格符(\u0020),JavaScript 还可以识别:水平制表符(\u0009)、垂直制表符(\u000B)、换页符(\u000C)、不换行空格符(\u00A0)、零宽不换行空格符(\uFEFF)等 Unicode 中的空白字符。

JavaScript 将如下字符识别为换行符:换行符(\u000A)、回车符(\u000D)、行分隔符(\u2028)、段分隔符(\u2029)。回车符加换行符在一起被解析为一个单行结束符。多数情况下 JavaScript 也会忽略换行符,但以下两种情况例外:

// 1 涉及 return、break、continue 这三个关键字的时候
return
true
/* 上面代码本意 “return true”
   但是 JavaScript 会解析成 “return; true”
*/

// 2 涉及 ++ 和 -- 运算符的时候
x
++
y
/* 上面代码本意 “x++; y”
   但是 JavaScript 会解析成 “x; ++y”
*/

控制符控制文本的视觉显示,比如:从右至左书写标记(\u200F)和从右至左书写标记(\u200E)。同空格、换行符,格式控制符不能用在标识符(比如:变量名)中。但有个例外, 零宽连接符(\u200D)和零宽不连接符(\u200C)可以出现在标识符中,但不能作为标识符的首字符。

var A\u200DB = 'AB'
console.log('A\u200DB = ' + A\u200DB)   // => A‍B = AB

2 注释

Javascript 注释的语法与 C ++ 等语言中的语法相同

// 单行注释

/* 这是一个更长的,
   多行注释
*/

/* 然而, 你不能, /* 嵌套注释 */ 语法错误 */

3 字面量

字面量(literal,或者称直接量)就是程序中直接使用的数据值,如:

12  // 数字
1.2 // 小数
"hello world"   // 字符串文本
'hi'    // 另一个字符串
true    // 布尔值
false   // 另一个布尔值
/javascript/gi  // 正则表达式直接量(用做模式匹配)
null    // 空
{x: 1, y: 2}    // 对象
[1, 2, 3, 4, 5] // 数组

4 标识符和保留字

在 JavaScript 中标识符用来对变量和函数进行命名,或者用作 JavaScript 代码中某些循环语句中的跳转位置的标记。JavaScript 标识符必须以字母、下划线(_)或美元符($)开始,后续的字符可以是字母、数字、下划线或美元符。

和其他编程语言一样,JavaScript 保留了一些标识符为自己所用。保留字不能用作普通的标识符。在 MDN Web Docs 中查看 JavaScript 保留字

另外,JavaScript 预定义了很多全局变量和函数,即 JavaScript 内置对象,应当避免把它们的名字用做变量名和函数名。在 MDN Web Docs 中查看 JavaScript 内置对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值