zoukankan      html  css  js  c++  java
  • 词法结构

    大小写敏感

    JavaScript是区分大小写的语言。即,关键字、变量、函数名和所有的标识符号(identifier)都必须采取一致的大小写形式.

    注释

    // 单行注释
    /* 一段注释 */ // 另一段注释
    /*
    * 多行注释
    *
    */
    

    标识符、关键字和保留字

    标识符即名字。在JavaScript中,标识符用来对变量和函数进行命名,或者用作某些循环语句中的跳转位置的标记、函数的参数。

    !>标识符必须是数字、字母、下划线(_)或美元符($)组成,且数字不能作为开始,以便Javascript可以轻易区分标识符和数字。
    标识符中的字母也可以包含扩展的 ASCII 或 Unicode 字母字符(如 À 和 Æ),例如:let a我 = 2也是可以正常使用的,但我们不推荐这样做。

    JavaScript把一些标识符拿出来用作自己的关键字。因此,就不能再在程序中把这些关键字用作标识符。
    关键字:

    break     delete    function    return    typeof
    case      do        if          switch    var
    catch     else      in          this      void
    continue  false     instanceof  throw     while
    debugger  finally   new         true      with
    default   for       null        try
    

    JavaScript同样保留了一些关键字,这些关键字在当前的语言版本中并没有使用,但在未来版本中可能会用到。

    abstract              delete               goto                   null	            throws
    as                    do                   if		             package	         transient
    boolean               double               implements             private             true
    break                 else                 import                 protected           try
    byte                  enum                 in                     public              typeof
    case                  export               instanceof             return              use
    catch                 extends              int                    short               var
    char                  false                interface              static              void
    class                 final                is                     super               volatile
    continue              finally              long                   switch              while
    const                 float                namespace              synchronized        with
    debugger              for                  native                 this
    default               function             new                    throw
    

    另外,JS中内置了很多全局变量和函数,应当避免吧他们的名字用作变量名和函数名

    arguments             Error             Math            String
    Array                 eval              NaN             super
    Boolean               EvalError         Number          synchronized
    Date                  Function          Object          throws
    decodeURI             Infinity          parseFloat      transient
    decodeURIComponent    isFinite          parseInt        volatile
    encodeURI             isNaN             RangeError
    encodeURIComponent    JSON              regExp
    

    分隔符

    JavaScript使用分号作为分隔符。通常情况下,缺少分隔符,上一条语句的结束就成了下一条语句的开始;使用换行来作为分隔时
    JavaScript会尝试合并解析,在无法正确解析代码时则在上一条语句后填补分号;

    // demo 1
    var a
    a
    =
    1
    console.log(a)
    
    // JavaScript 无法解析代码`var a a`因此自动加了`;`,结果为
    var a;a=1;console.log(a);
    
    // demo 2
    var a = 1, b = 2, f = 2
    var c = a + f
    (a + b).toString()
    
    // 解析结果 Uncaught TypeError: f is not a function
    var a = 1, b = 2, f = 2; var c = a + f(a + b).toString();
    
    // demo 3
    return
    true;
    
    // 解析结果
    return; true;
    
    // demo 4
    x
    ++
    y
    
    // 解析结果
    x; ++y;
    

    如果一条语句以([/+-开始,极有可能和前一条语句合在一起解析。因此很多库、框架或者平时代码中都喜欢保守的在开始语句前加一个分号。另外,有两种特殊的情况:

    • 几个特殊的语句(returnbreakcontinue) ,与随后的表达式之间不能换行,反之则只有在及特殊的情况下才不会报错,而且程序的调试非常不方便;
    • 在涉及++--运算符时,因其可作为表达式前缀,也可以作为表达式后缀,JavaScript解析时会优先与下一行代码合并解析

    严格模式

    ECMAScript 5 引入了严格模式(strict mode)的概念。严格模式是为 JavaScript 定义了一种不同的 解析与执行模型。在严格模式下,ECMAScript 3 中的一些不确定的行为将得到处理,而且对某些不安全 的操作也会抛出错误。要在整个脚本中启用严格模式,可以在顶部添加如下代码:

    "use strict";
    

    !> 严格模式下,JavaScript 的执行结果会有很大不同

  • 相关阅读:
    上线服务器参数调整
    java类加载过程,了解一下?
    利用jvm监控工具,了解一下?
    Druid 监控,了解一下?
    Linux安装mysql,了解一下?
    七大经典排序算法,了解一下?
    HashMap实现原理,了解一下?
    Linux下安装zookeeper和redis,了解一下?
    Linux下安装JDK和Tomcat,了解一下?
    ORACLE-dmp文件导出导入,了解一下?
  • 原文地址:https://www.cnblogs.com/fanlinqiang/p/11703071.html
Copyright © 2011-2022 走看看