JavaScript命名约定

2020/10/09 09:40 · javascript ·  · 0评论

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

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

我将对此保留自己的想法,因为我已经很长时间(仅几年)都没有使用过JS,而我只是收到了一个创建带有命名约定的文档的请求,该文档将在我们的项目中使用。所以我一直在四处寻找(google-ing),并且有很多不同的意见。

我在JS上阅读的书本身也使用了不同的命名约定,但它们都在一个方面达成了共识:“找到适合您的内容,并坚持下去。” 但是,既然我已经阅读了很多东西,我发现我喜欢其他一些方法,这些方法比我现在习惯的要好一些。

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

正如Geoff所说,Crockford所说的是好的。

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

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

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

您可以按照此Google JavaScript样式指南进行操作

通常,使用functionNamesLikeThis,variableNamesLikeThis,ClassNamesLikeThis,EnumNamesLikeThis,methodNamesLikeThis和SYMBOLIC_CONSTANTS_LIKE_THIS。

编辑:查看JavaScript样式指南和美化工具的不错集合

我想尝试的一种约定是使用“ the”前缀命名静态模块。看一下这个。当我使用别人的模块时,很难知道我应该如何使用它。例如:

define(['Lightbox'],function(Lightbox) {
  var myLightbox = new Lightbox() // not sure whether this is a constructor (non-static) or not
  myLightbox.show('hello')
})

我正在考虑尝试一个约定,其中静态模块使用“ the”表示它们的存在。有谁见过比这更好的方法?看起来像这样:

define(['theLightbox'],function(theLightbox) {
  theLightbox.show('hello') // since I recognize the 'the' convention, I know it's static
})

我认为除了语法限制之外,命名约定推理在很大程度上与语言无关。我的意思是,支持c_style_functions和JavaLikeCamelCase的参数也可以相反地很好地使用,只是语言用户倾向于跟随语言作者。

话虽如此,我认为大多数库都倾向于大致遵循Java的CamelCase的简化形式。我发现道格拉斯·克罗克福德的建议对我来说足够有品味。

这是一个个人问题,可能取决于您的工作方式。有些人喜欢将变量类型放在变量的开头,例如“ str_message”。有些人喜欢在他们的单词(“ my_message”)之间使用下划线,而另一些人喜欢使用大写字母(“ myMessage”)将它们分开。

我经常与其他人一起使用庞大的JavaScript库,因此函数和变量(函数内的私有变量除外)必须以服务名称开头,以避免出现冲突,例如“ guestbook_message”。

简而言之:根据我的看法,英语,小写,井井有条的变量和函数名是更可取的。名称应描述其存在而不是简短。

本文地址:http://javascript.askforanswer.com/javascriptmingmingyueding.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!