JavaScript的词法结构

本文深入解析JavaScript中的字符集、标识符与可选分号规则,涵盖ASCII、GB2312与Unicode字符集应用,强调大小写敏感性,解释标识符命名规范及保留字限制,探讨可选分号规则及其例外情况,旨在提供全面的JavaScript基础知识。

1、字符集

常见的字符集包括ASCII、GB2312、Unicode等,其中ASCII字符集是采用1个字节编码1个字符,而作为ASCII字符集的超集,Unicode则是采用2个字节编码1个字符,Unicode字符集足够编码地球上所有的语言!JavaScript程序的编写正是采用了Unicode字符集。

JavaScript代码严格区分大小写,需要注意的是,HTML不区分大小写(尽管XHTML区分大小写),因此在HTML中标签和属性名既可以大写也可以小写,而在JavaScript中必须是小写。

例如:
<button onclick="">
<button onClick="">

二者均合法,因为onclick同样可以写成onClick,但在JavaScript中必须小写成onclick。

JavaScript会自动忽略标识之间的空格,另外在大多数情况下(例外参见[可选的分号]),JS同样会忽略换行符。JS一旦碰到换行符、回车符、行分隔符、段分隔符时能够识别并认为当前行已经结束。

2、标识符和保留字

标识符说白了就是一个名字而已,例如变量、函数的名字,或者循环语句中跳转位置的标记的名字。JS规定标识符的命名必须由字母、数字、下划线、$符号组成(首位不能为数字)。

通常我们给标识符命名都是使用ASCII字符集里的字母(26个英文字母)和数字进行组合,但需要注意的是,前面提到JS采用的是Unicode字符集,所以事实上它允许标识符中出现Unicode字符全集中的字母和数字。

例如:
var sí = true;
var π = 3.14;

JavaScript会把一些标识符作为自己的关键字,因此这些关键字无法再安静地作为普通的标识符被使用了。除此之外,贪得无厌的JS还会再保留一些关键字,尽管在目前的版本中它们并没有被使用到,但在未来的版本中可能用到。ECMAScript3还将Java的所有关键字都作为了自己的保留字,尽管在ECMAScript5中放宽了限制,此外,JS预定义了很多全局变量和函数,对于全部的这些保留字,我们在书写标识符的时候应当积极避免。

3、可选的分号

JS通过分号(;)将每一条语句分隔开,若语句各自独占一行,那么通常可以省略掉语句之间的分号。需要注意的是,JS并不是在所有的换行处都会傻乎乎地填补分号,机智的它只有在当前的语句和随后的非空格字符不能被当成一个整体进行解析的时候才会填补分号结束当前语句。

简单来说就是,如果当前语句和下一行语句无法合并解析,那么JS则会在第一行末填补分号,这是通用的规则,但有2个例外:

1、涉及return、break、continue:如果这三个关键字后紧跟着换行,那么JS会果断地在行末填补分号。
例如:
return
true

该代码段会被JS解析为:return; true;
而其本意是:return true;
也就是说,在return、break、continue们和随后的表达式之间不能有换行,否则程序基本上不会报错。

2、涉及++、- -:如果将这2种运算符用做表达式的后缀,它和表达式应当在同一行,否则行尾将被填补分号,++或- -会被当做下一行代码的前缀并与之一并解析。
例如:
x
++
y

该段代码会被解析为:x; ++y;
而其本意是:x++; y;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值