代码之家  ›  专栏  ›  技术社区  ›  peirix

javascript命名约定[关闭]

  •  236
  • peirix  · 技术社区  · 15 年前

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

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

    我会把我自己的想法抛在脑后,因为我已经很久没有做JS了(只有几年时间),我刚刚收到一个请求,创建一个带有命名约定的文档,用于我们正在工作的项目。所以我一直在四处寻找(google-ing),有很多不同的意见。

    我在JS上读过的书本身也使用不同的命名约定,但它们都同意一点:找到适合你的东西,并坚持下去。但是现在我读了很多,我发现我比我现在所用的方法更喜欢其他一些方法。

    6 回复  |  直到 6 年前
        1
  •  194
  •   Benjamin R Simon_Weaver    7 年前

    我跟随 Douglas Crockford's code conventions 对于javascript。我也用他的 JSLint 用于验证以下约定的工具。

        2
  •  156
  •   Benjamin R Simon_Weaver    7 年前

    正如杰夫所说,什么? Crockford says 很好。

    唯一的例外是使用$varname来表示jquery(或任何库)对象。例如。

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

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

        3
  •  103
  •   João Pimentel Ferreira    6 年前

    你可以跟着这个走 Google JavaScript Style Guide

    一般来说,使用函数名slikethis、变量名slikethis、类名slikethis、枚举名slikethis、方法名slikethis和符号\u常量。

    编辑:查看 JavaScript Style Guides And Beautifiers .

        4
  •  8
  •   SimplGy    12 年前

    我想尝试的一个惯例是用“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
    })
    
        5
  •  6
  •   Javier    15 年前

    我认为除了一些语法限制之外,命名约定的推理在很大程度上与语言无关。我的意思是,支持C ou风格的函数和javalikecamelcase的论点同样可以用相反的方式,只是语言用户倾向于跟随语言作者。

    话虽如此,我认为大多数库倾向于粗略地遵循Java的CAMELSE的简化。我发现 Douglas Crockford advices 对我来说足够有品位。

        6
  •  2
  •   Ivar    15 年前

    这是一个独立的问题,取决于你是如何工作的。有些人喜欢把变量类型放在变量的开头,比如“str_message”。有些人喜欢在单词之间使用下划线(“我的消息”),而另一些人则喜欢用大写字母(“我的消息”)分隔它们。

    我经常和其他人一起使用大型的javascript库,所以函数和变量(除了函数中的私有变量)必须从服务的名称开始,以避免冲突,比如“留言簿”。

    简而言之:根据我的说法,最好是英语、小写、组织良好的变量和函数名。这些名字应该描述它们的存在,而不是简短。