• JavaScript:词法结构



    1、字符集
    JavaScript程序是用Unicode字符集编写的。 1.1 区分大小写 JavaScript是区分大小写的语言。也就是说,关键字、变量、函数名和所有标识符(identifier)都必须采取一致的大小写形式。比如:“name”和“Name”是不同的变量。 1.2 空格、换行符和格式控制符 在JavaScript中,会忽略程序中标识之间的空格。而对于换行符,JavaScript在多数情况下也会忽略,但有一种情况例外:当在return、break、continue语句后添加换行符时,JavaScript会在换行处添加分号。 JavaScript可以识别一些特殊字符:
    空格符(u0020)
    水平制表符(u0009)
    换页符(u000C)
    换行符(u000A)
    回车符(u000D)


    回车符加换行符在一起被解析为一个单行结束符。 1.3 Unicode转义序列 JavaScript定义了一种特殊序列,用6个ASCII字符来代表任意16位Unicode内码。这些Unicode转义序列均以u为前缀,其后跟随4个十六进制数(使用数字以及大写或小写字母A~F表示).


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


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


    4、 标识符和保留字
    标识符(identifier)是用来识别具体对象的一个名称。 JavaScript语言的标识符对大小写敏感,所以a和A是两个不同的标识符。 标识符命名规则: 第一个字符不能为数字,可以是任意Unicode字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_) 第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用数字。 中文是合法的标识符,可以用作变量名。 JavaScript有一些保留字,不能用作标识符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。 另外,还有三个词虽然不是保留字,但是因为具有特别含义,也不应该用作标识符:Infinity、NaN、undefined。


    5、 可选的分号
    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”

    适当的添加分号,可避免意想不到的错误。

  • 相关阅读:
    addEventListener和attachEvent的区别
    CSS鼠标手势
    css颜色代码大全
    js中showModalDialog的使用
    ajax详解
    JS中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
    js中Ajax工作原理(转)
    浏览器版本信息判断整理
    常见浏览器User-Agent大全
    JS性能优化之怎么加载JS文件
  • 原文地址:https://www.cnblogs.com/Liang-Haishan216/p/6014728.html
Copyright © 2020-2023  润新知