JavaScript的一个方面,它是很难找到的信息是外壳的做法。 通过外壳的做法,我的意思是应该用什么套管风格(即驼峰,帕斯卡情况等)进行什么样的元素(构造函数,私有函数,公共职能)。
我听到的唯一规则是从YUI剧院道格拉斯Crockford的演讲,指出构造应以大写字母开头的唯一功能。
除此之外,似乎没有被许多套管的标准,人们遵循的JavaScript。
有谁知道JavaScript的外壳的最佳实践,以及为什么它的合理使用它们?
另外,有人跟随你的.js文件的外壳风格?
JavaScript的一个方面,它是很难找到的信息是外壳的做法。 通过外壳的做法,我的意思是应该用什么套管风格(即驼峰,帕斯卡情况等)进行什么样的元素(构造函数,私有函数,公共职能)。
我听到的唯一规则是从YUI剧院道格拉斯Crockford的演讲,指出构造应以大写字母开头的唯一功能。
除此之外,似乎没有被许多套管的标准,人们遵循的JavaScript。
有谁知道JavaScript的外壳的最佳实践,以及为什么它的合理使用它们?
另外,有人跟随你的.js文件的外壳风格?
我喜欢PascalCase的构造函数和驼峰的一切。 这是JS标准库的用途和良好... ...每一个JS框架我到目前为止看到的风格:)
我用all_lowercase命名约定的所有文件,从网络服务。 还有一些不区分大小写的文件系统那里。
核心语言使用构造InitialCaps(如对象,日期,数字,正则表达式)和驼峰的方法和属性(如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);
刚刚成为完全混乱,不仅类型,但是,更重要的是,阅读。
(你花更多的时间阅读代码,试图调试或修改它,比你做的就是写它。)
什么到目前为止,我所看到的是外壳的标准非常大的差异。
就我而言,我用写我的JavaScript代码C#的造型。 我使用类很多(以及功能类,通常不具有独立的功能。)所以,我用PascalCase类的名称,公共方法,属性和所有的全局变量和驼峰为参数,局部变量和私有函数。 这在某种程度上反映了我共同的环境,帮助区分变量的作用域。 我也倾向于保持我的类函数在一个单独的文件具有相同的名称作为我的类名(ClassName.js,ClassName.min.js)。
这是关于我的方法。
我还注意到,Java程序员,遵循Java规则(和写作风格类似于Java语言。)Ruby on Rails的程序员按照自己的命名标准,如underscore_separated_var_name
。
而且,正如你提到的,在命名中非常流行的框架,其作者来自如Linux /开源社区和微软的开发者(jQuery的,knockout.js,JSJaC等),不同的社区使用pascalCase了很多的倾向
我要指出,没有这些方法是错还是对,当涉及到JS。 您的命名约定和文件结构的主要目的是可读性。 如果你是一致的,那么你在未来与您同行开发人员快速了解并与您的代码获得。
我宁愿驼峰的除了构造函数的一切。 究其原因(我相信这就是为什么克罗克福德先生提出这个问题,以及)是因为在其他语言,比如Java,惯例是利用你的类,它是用于什么构造。
这是我的$ 0.02。
用下划线分隔全部小写是最容易阅读; 它遵循自然语言。 “最佳”将让你在一个神圣的战争; 现实的情况是不区分大小写不亚于其他设计问题,但它是一个轻松的话题极化。
ALongButNotReallyReadableIdentifier
an_even_longer_but_completely_readable_identifier
接受的答案是正确的,但也有一些例外。 在window.JSON和window.XMLHttpRequest术语是大写。
同时大多数人使用PascalCase JavaScript中枚举类型的对象和范围内资本价值。 有时命名空间中PascalCase也做。
例如:MyCompany.Web.UI.MyComponent.ThemeOption = {BLACK:0,SILVER:1,BLUE:2}