我知道关于哪种命名约定最适合JavaScript存在很多争议(也许不是争议,但至少是争论)。

你如何命名你的变量,函数,对象等等?

我将把我自己的想法放在这里,因为我做JavaScript的时间不长(只有几年),而且我刚刚收到一个请求,要求我创建一个带有命名约定的文档,用于我们工作中的项目。所以我一直在搜索,有很多不同的观点。

我读过的关于JavaScript的书籍本身也使用不同的命名约定,但它们都同意一点:“找到适合你的,并坚持下去。”但现在我读了这么多,我发现我喜欢一些其他的方法比我现在习惯的要好一点。


当前回答

我认为除了一些语法限制之外;命名约定推理是完全独立于语言的。我的意思是,支持c_style_functions和JavaLikeCamelCase(上驼峰大小写)的参数同样可以以相反的方式使用;只是语言使用者倾向于追随语言的作者。

话虽如此,我认为大多数库都倾向于大致遵循Java上驼峰格式的简化。我觉得道格拉斯·克罗克福德的建议很有品位。

其他回答

正如杰夫所说,克罗克福德说的很好。

我遵循的唯一例外(并且已经看到广泛使用)是使用$varname表示jQuery(或任何库)对象。如。

var footer = document.getElementById('footer');

Var $footer = $('#footer');

我遵循Douglas Crockford的JavaScript代码约定。我还使用他的JSLint工具来验证遵循这些约定。

你可以遵循谷歌JavaScript风格指南。

一般来说,使用函数nameslikethis(低驼峰大小写),变量lenameslikethis,类nameslikethis(高驼峰大小写),枚举nameslikethis,方法nameslikethis和SYMBOLIC_CONSTANTS_LIKE_THIS。

请参阅JavaScript样式指南和美化器的集合。

我认为除了一些语法限制之外;命名约定推理是完全独立于语言的。我的意思是,支持c_style_functions和JavaLikeCamelCase(上驼峰大小写)的参数同样可以以相反的方式使用;只是语言使用者倾向于追随语言的作者。

话虽如此,我认为大多数库都倾向于大致遵循Java上驼峰格式的简化。我觉得道格拉斯·克罗克福德的建议很有品位。

这是一个个人问题,可能取决于你的工作方式。

有些人喜欢把变量类型放在变量的开头,比如“str_message”。有些人喜欢在单词之间使用下划线(“my_message”),而另一些人喜欢用大写字母分隔它们(“myMessage”)。

我经常和其他人一起使用巨大的JavaScript库,所以函数和变量(除了函数内部的私有变量)必须以服务的名称开始,以避免冲突,如“guestbook_message”。

简而言之:英文,小写,组织良好的变量和函数名是我的首选。名字应该描述它们的存在,而不是简短。