JavaScript:'禁止在标识符中引导_'作为JSLint中的一个选项

时间:2008-12-31 16:51:25

标签: javascript jslint

我刚刚开始编写自己的 JavaScript Framework (仅用于学习体验),并为一些私有成员添加了 _ ,如下所示:

var _isFireBugEnabled = function () {
    return (window.console && window.console.firebug);
};

当我在Crockford的JSLint(一如既往)上运行我的代码时,Recommended Options开启,我被告知不使用_作为标识符。

我的问题是,为什么JSLint警告我不使用_作为标识符?

我在这里缺少一些副作用或影响吗?

PS。就我现在可以扫描而言,book

中没有记录

2 个答案:

答案 0 :(得分:13)

原因是道格拉斯·克罗克福德讨厌大约78%的Javascript *。许多人认为他有点严格,事实上很多图书馆都在生产代码中使用领先的下划线。我没有看到太多错误。没有副作用。

此外,'$',而不是下划线,是ECMA spec为“系统”代码留出的符号。

  

来自ECMA 262,第7.6节:

     

本标准规定了一个出发点   来自Unicode中给出的语法   标准:美元符号($)和   任何地方都允许使用下划线(_)   在标识符中。美元符号是   仅供机械使用   生成的代码。

*注意:我很滑稽。他真的只讨厌一半,他通常有充分的理由。我在这里不同意克罗克福德,但他通常非常正确。

答案 1 :(得分:8)

我实际上已经通过电子邮件发送了Crockford。这是他的回答:

  

我认为_应该保留   系统代码实现,而不是   应用程序使用。

我在某种程度上不同意他,我倾向于使用_来为我自己的班级中的真正私人成员加前缀,因为它让我清楚了什么是私有的。谷歌的Caja有一些关于_的使用的规则,但没有任何可能导致你所描述的问题。