在JavaScript代码中,使用下划线作为变量名前缀是一个常见的编码规范。这个习惯起源于其他编程语言(如Java和C++)中私有变量的命名方式。虽然在JavaScript中没有真正的私有变量,但是这种命名惯例仍然被广泛接受。
然而,在使用JSLint进行代码检查时,您可能会遇到以下错误提示:“Unexpected dangling '_' in 'variableName'.” 这意味着您的代码中出现了以“”开头的变量名。尽管这不会导致代码崩溃或运行时错误,但它违反了JSLint的建议,因此需要对代码进行更改。
为什么JSLint对下划线变量名感到困惑?
JSLint的作者Douglas Crockford曾经解释过为什么他不喜欢使用下划线作为变量名的前缀。他认为,在JavaScript中,变量名应该只用来表示值,而不是表示访问控制。在其他编程语言(如Java)中,下划线通常用于表示私有变量,但在JavaScript中,这种区分并不适用,因为JavaScript没有真正的私有性。
在JSLint的世界里,您可以通过在变量名前加上“use strict”来使用变量的严格模式,这可以使您在使用未声明的变量时获得更好的错误提示。因此,在JSLint中,不需要使用下划线来表示私有性。
如何修复“意外悬空”字符下划线前缀的变量名?
幸运的是,将以“_”开头的变量名更改为不带下划线的变量名并不难。如果您已经使用了一些类库或框架,并且它们使用下划线作为变量名前缀,则可以使用以下两个技巧:
- 在变量名前加上一个描述性的单词,例如:
var _privateVariableName
可以更改为var privateVariableName_
或var myPrivateVariableName
- 将变量名更改为驼峰命名法(CamelCase),例如:
var _private_variable_name
可以更改为var privateVariableName
这些方法都能够清除JSLint警告,并使代码更具可读性和易于维护。
示例代码
-- -------------------- ---- ------- -- ------ -------- ---------- - -- ---- -------- -- ---- --- ----------- - ------- -------- -- ------ -------------- -------- --- -- --------------- -- ------------------ --- ------------------ - ------- -------- -- ----- -- ------------- --- ------------------- - ------- -------- -- -----
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/12216