文件应该用hyphens.js,camelCased.js或其他东西命名吗?
我没有找到这个问题的答案here。
答案 0 :(得分:153)
一种可能的命名约定是使用与jQuery使用的命名方案类似的东西。它并非普遍采用,但它很常见。
product-name.plugin-ver.sion.filetype.js
其中product-name
+ plugin
对也可以代表namespace and a module。 version
和filetype
通常是可选的。
filetype
可以是与文件内容相关的内容。经常看到的是:
min
用于缩小文件custom
用于自定义构建或修改的文件示例:
jquery-1.4.2.min.js
jquery.plugin-0.1.js
myapp.invoice.js
答案 1 :(得分:108)
我不知道javascript文件的任何特定约定,因为它们在网络上不是唯一的,而不是css文件或html文件或任何其他类型的文件。您可以做一些“安全”的事情,使您不太可能意外地遇到跨平台问题:
various-scripts.js
中的多个单词而不是空格或camelcase使用某种分隔符,则连字符是安全的和有用的常用分离器。答案 2 :(得分:49)
没有正式的通用,用于命名JavaScript文件。
有各种选择:
scriptName.js
script-name.js
script_name.js
都是有效的命名约定,但我更喜欢jQuery建议的命名约定(对于jQuery插件,虽然它适用于任何JS)
jquery.pluginname.js
这个命名惯例的美妙之处在于显式描述了添加的全局命名空间污染。
foo.js
添加window.foo
foo.bar.js
添加window.foo.bar
因为我省略了版本控制:它应该在全名之后,最好用连字符分隔,主要版本和次要版本之间有句号:
foo-1.2.1.js
foo-1.2.2.js
foo-2.1.24.js
答案 3 :(得分:12)
您提供的链接中的问题涉及JavaScript变量的命名,而不是文件命名,所以请忘记您提出问题的上下文。
至于文件命名,纯粹是偏好和品味的问题。我更喜欢用连字符命名文件,因为那时我不必像处理camelCase文件名那样触及shift键;因为我不必担心Windows和Linux文件名之间的差异(Windows文件名不区分大小写,至少通过XP)。
所以答案就像许多人一样,是“它取决于”还是“取决于你”。
您应遵循的一条规则是在您选择的惯例中保持一致。
答案 4 :(得分:6)
我通常更喜欢小写的连字符,但有一点尚未提及的是,有时候让文件名与单个模块的名称或包含在其中的可实例化函数完全匹配是件好事。
例如,我在自己的文件中用var knockoutUtilityModule = function() {...}
声明了一个名为knockoutUtilityModule.js的揭示模块,虽然客观上我更喜欢knockout-utility-module.js。
同样,由于我使用捆绑机制来组合脚本,因此为了可维护性,我已经在他们自己的文件C#样式中定义了可实例化的函数(模板化视图模型等)。例如,ProductDescriptorViewModel在ProductDescriptorViewModel.js中独立存在(我使用大写来实现可实例化的函数)。