文件应该被命名为带有连字符的东西。js, camelcase .js,还是别的什么?
我没有找到这个问题的答案在这里。
没有官方的通用命名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
你给出的链接中的问题是关于JavaScript变量的命名,而不是关于文件的命名,所以在你提出问题的环境中忘记它吧。
至于文件命名,这纯粹是一个喜好和品味的问题。我更喜欢用连字符命名文件,因为这样我就不必像处理camelCase文件名时那样用shift键;也因为我不必担心Windows和Linux文件名之间的差异(Windows文件名是不区分大小写的,至少在XP中是这样)。
所以,和许多人一样,答案是“视情况而定”或“由你决定”。
您应该遵循的一个规则是在所选择的约定中保持一致。
一种可能的命名约定是使用类似于jQuery使用的命名方案。它并没有被普遍采用,但相当普遍。
product-name.plugin-ver.sion.filetype.js
其中product-name + plugin对也可以表示命名空间和模块。version和filetype通常是可选的。
product-name
plugin
version
filetype
filetype可以是一个相对于文件内容的东西。常见的有:
min
custom
例子:
jquery-1.4.2.min.js
jquery.plugin-0.1.js
myapp.invoice.js
我不知道javascript文件有什么特别的约定,因为它们在web上与css文件或html文件或任何其他类型的文件相比并不是唯一的。你可以做一些“安全”的事情来降低你意外遇到跨平台问题的可能性:
various-scripts.js
我通常更喜欢小写的连字符,但还有一件事没有提到,那就是有时文件名最好与其中包含的单个模块或可实例化函数的名称完全匹配。
例如,我在自己的文件knockoutUtilityModule.js中声明了一个用var knockoutUtilityModule = function() {...}声明的揭示模块,尽管客观地说我更喜欢knockout-utility-module.js。
var knockoutUtilityModule = function() {...}
类似地,由于我使用捆绑机制来组合脚本,我已经开始在各自的文件中定义可实例化的函数(模板化视图模型等),采用c#风格,以提高可维护性。例如,ProductDescriptorViewModel在ProductDescriptorViewModel.js中独立存在(对于可实例化的函数,我使用大写)。