【问题标题】:Variable naming conventions other than trailing underscore [duplicate]除尾随下划线以外的变量命名约定[重复]
【发布时间】:2013-10-14 11:57:18
【问题描述】:

我正在重新格式化插件以使其通过 JSLint。插件使用尾随下划线来命名局部变量,如下所示:

var __slice = [].slice,
    __indexOf = [].indexOf

JSLint 不喜欢这样。 JSLint 不会反对的另一个易于识别的命名约定是什么?

【问题讨论】:

  • 这是不是你写的插件?如果没有,您应该从您的 linting 过程中排除第三方文件。如果是这样,您可以删除下划线吗?
  • 我最初并没有编写它,但是我已经对其进行了足够广泛的修改,以至于它需要包含在我的代码质量标准中,这对于这个项目来说意味着通过了 JSLint。根据插件作者的要求,原文在标头中注明。
  • 这些是前导下划线,而不是尾随下划线。
  • “解决方案”当然是使用真正的 linter,而不是由一个脾气暴躁的人创建的,试图将他的个人意见强加给每个人。您会发现 jshint 或 eslint 是更好的选择。例如,它们是可配置的。如果这是一个公司政策问题,那么值得花时间说服您的管理层改用优质的 linter。基于 github start,npm 的流行度只有 jshint 或 eslint 的 1/10。 jscs也可能是一种可能性。但是如果你被 jslint 卡住了,你看nomen 选项了吗?

标签: javascript variables jslint


【解决方案1】:

引用发明 JSLint 的人 Douglas Crockford 的话:

不要使用 _(下划线)作为名称的第一个字符。这是 有时用于表示隐私,但实际上并不提供 隐私。如果隐私很重要,请使用提供隐私的表格 成员。避免表现出缺乏能力的惯例。

大多数变量和函数应该以小写字母开头。

取自Code Conventions for the JavaScript Programming Language

你可以看看Private Members in Javascript,看看他说的use the forms that provide private members.是什么意思

【讨论】:

  • 这不是在回答他们的问题,他们是在寻求替代方案,而不是因为不允许这样做。
  • @AshBurlaczenko 我认为替代方案出现在引用中:“大多数变量和函数应该以小写字母开头。”
  • 该替代方案不满足 OP 对“易于识别的约定”的要求。
  • 可以给名字加前缀:privateBar = 'boo';我自己不介意下划线前缀...
猜你喜欢
  • 2011-03-09
  • 1970-01-01
  • 2011-04-08
  • 2012-04-04
  • 1970-01-01
  • 2013-09-05
  • 2011-10-16
  • 2014-04-14
  • 1970-01-01
相关资源
最近更新 更多