是否存在在Javascript中命名可变和谓词函数的约定?

时间:2012-11-20 22:14:25

标签: javascript coding-style naming-conventions predicate mutable

是否存在在Javascript中命名可变和谓词函数的约定?

例如,在Ruby,Lisp等中,改变其内容的函数,如gsub!,通常会有一个感叹号作为约定来表示该函数是危险的。

或者,如果函数返回一个布尔值,如even?,该函数将有一个问号。

不幸的是,您不能在Javascript中的函数名中使用?!等特殊字符,那么Javascript程序员使用哪些约定来表示这些特殊类型?

2 个答案:

答案 0 :(得分:5)

是的,命名返回true|false的函数的通常惯例是在is前面添加isDate,如isHiddenreplace ... mutate 没有常规AFAIK,但在JavaScript中,大多数方法都不会修改原始对象,所以你只需要知道哪些做了哪些做了哪些,哪些做不行,但是你可以告诉它。例如,a = a.replace(...)不会修改原始对象,因此您可以分配:splice,但像{{1}} 这样的方法会修改原始对象,所以你可以告诉,因为在同一个变量上没有赋值。

答案 1 :(得分:2)

默认情况下,JavaScript中没有这样的东西。这取决于您所工作的组织是否有他们遵守的编码约定。

我公司遵循的一个惯例是在函数前加上下划线来表示内部变量/函数。这相当于OOP中的私有变量/函数。

例如,我将在jMVC中的控制器中使用的一个常见的是:

_isIE = $('html').is('.ie8, .ie9');

因为我们只希望这个控制器中的其他功能可以访问它。