第二章:词法结构

本文介绍了JavaScript的基础知识,包括它使用Unicode字符集,区分大小写,忽略空格但对换行有特殊处理。JavaScript支持单行和多行注释,直接量包括数字、字符串、布尔值和正则表达式。标识符命名规则及保留字也进行了讲解,强调了分号的可选使用以及潜在的解析陷阱。适当添加分号可以避免解析错误。
摘要由CSDN通过智能技术生成

字符集

        JavaScript程序是用Unicode字符集编写的。
        JavaScript是 区分大小写 的语言。即 关键字 变量 函数名 所有标识符 (identifier)都必须采取一致的大小写形式。如:“name”和“Name”是不 同的变量。
        在JavaScript中,会 忽略程序中标识之间的空格 。而对于换行符, JavaScript在多数情况下也会忽略,但有一种情况例外:当在return、break、 continue语句后添加换行符时,JavaScript会在换行处添加分号。
        JavaScript可以识别一些特殊字符:
                                                                空格符(\u0020)
                                                                水平制表符(\u0009)
                                                                换页符(\u000C)
                                                                换行符(\u000A)
                                                                回车符(\u000D)
        回车符加换行符在一起被解析为一个单行结束符。在有些计算机硬件和软件中,无法显示或者输入Unicode字符全集,为了支持使用老旧技术的程序员, JavaScript定义了一种特殊序列, 用6个ASCII字符来代表任意16位Unicode内码 。这些Unicode转义序列均 以\u为前缀 ,其后跟随4个十六进制数(使用数字 以及大写或小写字母A~F表示)。

注释

        JavaScript提供了两种格式的注释:
        单行注释 : 以 // 开头
        多行注释 :放在 /* */ 之间(可跨行书写,但 不能有嵌套注释

直接量

        直接量 :程序中直接使用的数据值。如:
        12         //数字
        1.2         //小数"hello world" //字符串
        true         //布尔值
        /javascript/gi         //正则表达式直接量(模式匹配)
        null         //空

标识符和保留字

        标识符 (identifier)是用来 识别具体对象 的一个名称,可用作变量和函数的命名,或者作为某些循环语句中跳转位置的标记。 JavaScript语言的标识符对 大小写敏感 ,所以a和A是两个不同的标识符。
        标识符命名规则 : 第一个字符不能为数字,可以是 任意Unicode字母 (包括英文字母和其他语言的字母),以及 美元符号 ($)和 下划线 (_)第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用 数字
        JavaScript有一些标识符是 关键字 ,因此不能用作标识符:
        关键字(29个)
        break         case         catch         continue         debugger
        default       delete       do              else                false
        finally         for            function      if                     in
        instanceof  new         null             return              switch
        this             throw      true             try                   typeof
        var             void         while           with
        保留字(7个)
        class         const         enum         export        extends         import         super
        保留字,严格模式下增加的11个
        implements         interface         let         package         private         protected
        public                  static              yield      arguments     eval
        同时,JavaScript预定义了许多全局变量和函数,应当避免使用与其相同的标识符作为变量名和函数名。

可选的分号

        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 y=x+f
(a+b).toString()
解析后:
var y=x+f(a+b).toString();
        如果当前语句和下一行语句无法合并解析,JavaScript则在第一行后填补分
号,这是通用规则,但有两个例外。
        第一个例外是在涉及return、break和continue语句的场景 ,如果这三个关
键字后紧跟换行,JavaScript则会在换行处填补分号。
例如:
return
true;
JavaScript会解析成:
return; true;
         第二个例外是在涉及“++”和“--”运算符的时候
x
++
y
将会解析成 “x;++y”,而不是“x++;y”
        适当的添加分号,可避免意想不到的错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值