• JavaScript标识符与关键字和保留字


    区分大小写

    JavaScript中的一切(变量、函数名、操作符)都区分大小写。例如,变量名itbsl和变量名ITbsl是两个不同的变量。

    标识符

    所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以是按照下列格式规则组合起来的一或多个字符:

    • 第一字符必须是一个字母、下划线(_)、或一个美元符号($);
    • 其它字符可以是字母、下划线、美元符号或数字;

    注意:

    不能把关键字、保留字、true、false和null用作标识符。

    如何避免令人难堪的命名错误?

    • 选择有意义的名称
      标识符名称如_、m、s、r或bu对你来说也许是有意义的,但在开发过程中尽量避免。随着时间的推移,你可能会忘记这些变量的含义,如果使用见名知义的变量如firstName, lastName这样的变量名,你的代码将更容易理解,并且标识符名称建议使用驼峰法命名。
    • 除非有充分的理由,否则不要使用以_或$打头的变量名
      以$打头的变量名通常保留用于JavaScript库;有些作者根据各种约定使用以_打头的变量名。然而,建议除非有充分的理由(具体是什么理由你自己知道),否则不要使用这两种变量名。

    关键字和保留字

    ECMA-262描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是ECMAScript的全部关键字:

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

    ECMA-262还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途,但他们有可能在将来被用作关键字。一下是EMCA-262第三版定义的全部保留字:

    abstract          enum          int          short
    boolean           export        interface    static
    byte              extends       long         super
    char              final         native       synchronized
    class             float         package      throws
    const             goto          private      transient
    debugger          implements    protected    volatile
    double            import        public
    

    第5版把在非严格模式下运行时的保留字缩减为下列这些:

    class          enum          extends          super
    const          export        import
    

    在严格模式下,第5版还对以下保留字加了限制:

    implements          package          public
    interface           private          static
    let                 protected        yield
    

    除了上面列出的关键字和保留字,ECMA-262第5版对eval和arguments还施加了限制。在严格模式下,这两个名字也不能作为标识符或属性名,否则会抛出错误。
    建议:

    无论是在严格模式下还是在非严格模式下,都不要在定义变量名、函数名或者属性名时使用上面列举出的保留字,以免入坑。

  • 相关阅读:
    C# TCP/IP 服务端 和 客户端
    (trigger)触发器的定义和作用
    AD账号登陆验证
    DES加密&解密字符串
    机器视觉(工业视觉)需要什么技能
    机器视觉对位贴合
    Halcon blob分析基本处理步骤
    cross_val_score 交叉验证与 K折交叉验证,嗯都是抄来的,自己作个参考
    50道SQL练习题及答案与详细分析(MySQL)
    MySQL8.0 ROW_NUMBER、RANK、DENSE_RANK窗口函数 分组排序排名
  • 原文地址:https://www.cnblogs.com/itbsl/p/9942906.html
Copyright © 2020-2023  润新知