JSLint报告“意外悬空”字符下划线前缀的变量名

阅读时长 3 分钟读完

在JavaScript代码中,使用下划线作为变量名前缀是一个常见的编码规范。这个习惯起源于其他编程语言(如Java和C++)中私有变量的命名方式。虽然在JavaScript中没有真正的私有变量,但是这种命名惯例仍然被广泛接受。

然而,在使用JSLint进行代码检查时,您可能会遇到以下错误提示:“Unexpected dangling '_' in 'variableName'.” 这意味着您的代码中出现了以“”开头的变量名。尽管这不会导致代码崩溃或运行时错误,但它违反了JSLint的建议,因此需要对代码进行更改。

为什么JSLint对下划线变量名感到困惑?

JSLint的作者Douglas Crockford曾经解释过为什么他不喜欢使用下划线作为变量名的前缀。他认为,在JavaScript中,变量名应该只用来表示值,而不是表示访问控制。在其他编程语言(如Java)中,下划线通常用于表示私有变量,但在JavaScript中,这种区分并不适用,因为JavaScript没有真正的私有性。

在JSLint的世界里,您可以通过在变量名前加上“use strict”来使用变量的严格模式,这可以使您在使用未声明的变量时获得更好的错误提示。因此,在JSLint中,不需要使用下划线来表示私有性。

如何修复“意外悬空”字符下划线前缀的变量名?

幸运的是,将以“_”开头的变量名更改为不带下划线的变量名并不难。如果您已经使用了一些类库或框架,并且它们使用下划线作为变量名前缀,则可以使用以下两个技巧:

  1. 在变量名前加上一个描述性的单词,例如:var _privateVariableName 可以更改为 var privateVariableName_var myPrivateVariableName
  2. 将变量名更改为驼峰命名法(CamelCase),例如:var _private_variable_name 可以更改为 var privateVariableName

这些方法都能够清除JSLint警告,并使代码更具可读性和易于维护。

示例代码

-- -------------------- ---- -------
-- ------ -------- ---------- - --
---- --------

-- ----
--- ----------- - ------- -------- -- ------ -------------- -------- --- -- ---------------

-- ------------------
--- ------------------ - ------- -------- -- -----

-- -------------
--- ------------------- - ------- -------- -- -----

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/12216

纠错
反馈