在 Python 中,当变量名与保留字(如 class
、 in
、 default
等)冲突时,PEP8 约定规定应使用尾随下划线( class_
、 in_
、 default_
)。
对于同一案例,共享最多的 javascript 约定是什么?
最佳答案
据我所知,没有。基本上你只是避免使用保留字。例如,对于 class
,我见过: Class
、 cls
、 klazz
、 clazz
和 className
。再举一个例子,当将属性映射到 DOM 元素上的属性时(在 JavaScript 中大量使用),W3C 人员使用 className
(用于 class
)、htmlFor
(用于 for
)、cssFloat
(用于 float
)等等.我从未见过有人使用尾随 _
。 (另一方面,领先的 _
很常见——人们将它用于他们希望人们认为私有(private)的对象的属性。)
在处理属性时,从技术上讲,您不必担心它,因为从技术上讲,根据规范,属性名称可以是保留字,因为解析器有足够的上下文来知道属性名称不是别的东西。 (这并不意味着所有的实现都会得到它,我不推荐它。)这是因为属性名称只需要是规范所称的 IdentifierName,而不是 Identifier。 (标识符字面上是 "IdentifierName but not ReservedWord" )。
对于那些不想用属性名称冒险的人来说,常用的方法是使用引号:
var obj = { "class": "is perfectly fine" };
// Access
console.log(obj["class"]);
关于与保留字冲突时的 Javascript 约定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17594253/