【问题标题】:What is the best-practice casing style for javascript? Why?javascript 的最佳实践大小写样式是什么?为什么?
【发布时间】:2009-06-17 16:38:18
【问题描述】:

很难找到有关 javascript 信息的一个方面是大小写实践。通过大小写实践,我的意思是应该为哪些元素(构造函数、私有函数、公共函数)使用哪种大小写样式(即驼峰式大小写、帕斯卡大小写等)。

我听到的唯一规则来自 Douglas Crockford 在 YUI 剧院的演讲,它指出构造函数应该是唯一以大写字母开头的函数。

除此之外,人们在 javascript 中遵循的大小写标准似乎并不多。

有谁知道 javascript 的任何大小写最佳实践,以及为什么使用它们是合理的?

您的 .js 文件是否也遵循大小写样式?

【问题讨论】:

    标签: javascript variables function casing


    【解决方案1】:

    我更喜欢 PascalCase 用于构造函数,而 camelCase 用于其他一切。这就是 JS 标准库使用的风格,嗯……到目前为止我见过的每一个 JS 框架 :)

    我对从网络提供的所有文件使用 all_lowercase 命名约定。有一些不区分大小写的文件系统。

    【讨论】:

    • 你能想象如果有一个不区分大小写的主流现代操作系统 xD 会多么愚蠢!
    【解决方案2】:

    核心语言将 InitialCaps 用于构造函数(例如 Object、Date、Number、RegExp),将 camelCase 用于方法和属性(例如 something.toString()、quantity.valueOf()、regexp.ignoreCase)。 DOM 规范和实现也遵循此约定(例如 HTMLElement.setAttribute())。因此,采用相同的约定是最有意义的,否则你会以一种可怕的混合样式结束,例如:

    var number_of_fish_requested = document.getElementById("fish").value;
    var fish_count = parseInt(number_of_fish_requested, 10);
    

    这变得完全令人困惑,不仅是打字,更重要的是,阅读。

    (你花在阅读代码、调试或修改代码上的时间比你写代码的时间要多。)

    【讨论】:

    • 感谢您的精彩解释!
    【解决方案3】:

    到目前为止,我看到的是非常多样化的套管标准。

    就我而言,我使用 C# 样式来编写我的 JavaScript 代码。我经常使用类(以及函数作为类,通常没有独立的函数。) 所以,我对类名、公共方法、属性和所有全局变量使用 PascalCase,对参数、局部变量和私有函数使用 camelCase。这以某种方式反映了我的常见环境,有助于区分变量范围。 我还倾向于将我的类函数保存在与我的 ClassName 同名的单独文件中(ClassName.js、ClassName.min.js)。

    这是关于我的方法。

    我还注意到 Java 程序员遵循 Java 规则(并且写作风格类似于 Java 语言)。Ruby on Rails 程序员遵循他们自己的命名标准,例如underscore_separated_var_name

    此外,正如您所提到的,在非常流行的框架中,有大量使用 pascalCase 命名的趋势,这些框架的作者来自不同的社区,如 Linux/开源社区和 Microsoft 开发人员(jQuery、knockout.js、JSJaC 等。 )

    我应该注意到,对于 JS,这些方法都没有对错。命名约定和文件结构的主要目的是可读性。如果您始终如一,那么您和您的其他开发人员将很快理解并继续使用您的代码。

    【讨论】:

      【解决方案4】:

      除了构造函数之外,我更喜欢 camelCase。原因(我相信这也是 Crockford 先生建议这样做的原因)是因为在其他语言中,例如 Java,约定是大写你的类,这就是构造函数的用途。

      这是我的 0.02 美元。

      【讨论】:

        【解决方案5】:

        所有带有下划线分隔符的小写字母最容易阅读;它遵循自然语言。 “Best”会让你陷入一场圣战;现实情况是,案例并不像其他设计问题那么重要,但它是一个容易引起两极分化的话题。

        ALongButNotReallyReadableIdentifier
        an_even_longer_but_completely_readable_identifier
        

        【讨论】:

        • 但“最简单”并没有特别避免任何圣战。 说Pascal和camel case比下划线更容易阅读,说这是'最简单'的。现在谁是对的?
        • 你是对的,我无法证明这是“错误的”。大多数研究大脑如何划分英语散文的人观察到,大脑会将一个句子分成由空格分隔的单词。然后,大脑将对每个单词的第一个和最后一个字母、单词的大致长度进行模式识别,并应用上下文来推导语义。确实可以自学阅读不同类型的脚本,但必须有充分的理由从标准英语转移。
        • 你的例子很有趣。 AnEvenLongerButCompletelyReadableIdentifier 可以正常工作,因为您一开始没有两个大写字母相互对接。
        【解决方案6】:

        接受的答案是正确的,但也有一些例外。 在 window.JSON 和 window.XMLHttpRequest 中,术语是大写的。

        此外,大多数人将 PascalCase 用于 Javascript 中的枚举类型对象和其中的大写值。有时命名空间也在 PascalCase 中完成。

        示例: MyCompany.Web.UI.MyComponent.ThemeOption = { 黑色:0,银色:1,蓝色:2}

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-10-26
          • 2010-10-03
          • 2011-06-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多