【问题标题】:Naming convention for const object keys in ES6ES6 中 const 对象键的命名约定
【发布时间】:2017-03-10 13:26:54
【问题描述】:

对于 es6 中的 const 对象中的键名是否有推荐的命名约定?我找不到说明它们应该是大写还是小写的资源。

const COLOR_CODES = {
  BLUE: 1,
  RED: 1
};

const COLOR_CODES = {
  blue: 1,
  red: 1
};

这篇 MDN 文章中的The examples 显示了这两种样式,所以可能两者都可以接受。

【问题讨论】:

  • 这可能归结为实际偏好,但无论您选择使用哪个,只要保持一致即可。
  • 首先,这取决于您自己的编码偏好和使用常量的上下文。对于解构const { BLUE } = COLOR_CODES,第一个版本更可取,因为大小写约定服务于它的目的,而COLOR_CODES.BLUE 只是让它更难阅读——很明显,常量对象的属性是常量。
  • 即使很明显,我认为COLOR_CODES.BLUECOLOR_CODES.blue 更容易阅读——第一部分全部为大写而另一部分为小写看起来有点奇怪。跨度>

标签: javascript ecmascript-6 naming-conventions


【解决方案1】:

根据谷歌的说法,这将是全部大写。根据经验,大多数其他编程语言都有大写字母,所以我建议使用它。

NAMES_LIKE_THIS 用于常量值。

使用@const 表示常量(不可覆盖)指针(变量或属性)。

Google javascript 指南 https://google.github.io/styleguide/javascriptguide.xml

【讨论】:

    【解决方案2】:

    Google 曾推荐以下内容:

    const COLOR_CODES = {
      BLUE: 1,
      RED: 1
    };
    

    见:https://google.github.io/styleguide/javascriptguide.xml#Constants

    • NAMES_LIKE_THIS 用于常量
    • 使用@const 表示常量(不可覆盖)指针(变量或属性)。
    • 切勿使用 const 关键字,因为 Internet Explorer 不支持它。

    不过,更新后的style guidelines 有不同的建议。

    【讨论】:

    • COLOR_CODES 不是该上下文中所指的值,并且const 受 IE 支持。
    • 好点。我假设常量名称将遵循相同的约定。你说得对,IE11 支持 ES6,但 IE10 不支持。
    • @const 应该是有效的语法吗?
    【解决方案3】:

    注意:请注意,接受的回复包含指向过时 Google 样式指南的链接

    这很好(字符串文字或整数文字):

    const PI = 3.14;
    const ADDRESS = '10.0.0.1';
    

    但是……

    const myObject = { key: 'value' };
    const userSuppliedNumber = getInputNumber()
    

    Google JavaScript Style Guide 说:

    用 const 或 let 声明所有局部变量。使用 const 通过 默认值,除非需要重新分配变量。 var 关键字 不得使用。

    每个常量都是@const 静态属性或模块本地常量 声明,但不是所有 @const 静态属性和模块本地 consts 是常量。在选择常数案例之前,请考虑是否 这个领域真的感觉像是一个非常不可变的常数。例如, 如果该实例的任何可观察状态可以改变,它几乎是 当然不是常数。仅仅打算永远不改变对象 一般是不够的。

    JavaScript.info 说:

    ...以大写命名的常量仅用作“硬编码”的别名 价值观。

    【讨论】:

    • 公认的答案是“大多数其他编程语言都有大写字母”,确实如此。但是像 Java 和 C# 这样的语言只支持字符串、数字和布尔值的 const,而不支持像 Javascript 这样的任何对象。所以我认为更新的谷歌风格指南考虑到了这个事实,并且只在 const 的使用方式与其他语言中使用的方式相同时推荐大写,而不是在 Javascript 中使用更不寻常的方式
    【解决方案4】:

    命名约定无处不在,我个人还没有决定my preference,但为了补充讨论,这是Airbnb JavaScript Style Guide 所说的(参见最后一个示例):

    // bad
    const PRIVATE_VARIABLE = 'should not be unnecessarily uppercased within a file';
    
    // bad
    export const THING_TO_BE_CHANGED = 'should obviously not be uppercased';
    
    // bad
    export let REASSIGNABLE_VARIABLE = 'do not use let with uppercase variables';
    
    // ---
    
    // allowed but does not supply semantic value
    export const apiKey = 'SOMEKEY';
    
    // better in most cases
    export const API_KEY = 'SOMEKEY';
    
    // ---
    
    // bad - unnecessarily uppercases key while adding no semantic value
    export const MAPPING = {
      KEY: 'value'
    };
    
    // good
    export const MAPPING = {
      key: 'value'
    };
    

    【讨论】:

      猜你喜欢
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 2015-09-30
      • 2019-12-17
      • 1970-01-01
      • 2010-11-05
      相关资源
      最近更新 更多