Pregunta

Un aspecto de JavaScript en el que es difícil encontrar información son las prácticas de mayúsculas y minúsculas. Por prácticas de carcasa, me refiero a qué estilo de carcasa (es decir, camel-case, pascal-case, etc.) debe usarse para qué elementos (constructores, funciones privadas, funciones públicas).

La única regla que he escuchado es de una conferencia de Douglas Crockford sobre el teatro YUI, que establece que los constructores deberían ser las únicas funciones que comienzan con una letra mayúscula.

Más allá de eso, no parece haber muchos estándares de carcasa que la gente siga en javascript.

¿Alguien conoce alguna de las mejores prácticas de carcasa para javascript y por qué es razonable usarlas?

¿También sigue un estilo de carcasa con sus archivos .js?

¿Fue útil?

Solución

Prefiero PascalCase para constructores y camelCase para todo lo demás. Ese es el estilo que usa la biblioteca estándar de JS y bueno ... todos los frameworks de JS que he visto hasta ahora :)

Y uso la convención de nomenclatura all_lowercase para todos los archivos servidos desde la web. Existen algunos sistemas de archivos que no distinguen entre mayúsculas y minúsculas.

Otros consejos

El lenguaje principal usa InitialCaps para constructores (por ejemplo, Object, Date, Number, RegExp) y camelCase para métodos y propiedades (por ejemplo, algo.aString (), cantidad.valorOf (), regexp.ignoreCase). Esta convención también se sigue en las especificaciones e implementaciones DOM (por ejemplo, HTMLElement.setAttribute ()). Por lo tanto, tiene más sentido adoptar la misma convención, o terminas con una mezcla horrible de estilos como:

var number_of_fish_requested = document.getElementById("fish").value;
var fish_count = parseInt(number_of_fish_requested, 10);

que se vuelve completamente confuso, no solo para escribir sino, mucho más importante, para leer.

(Primero pasa más tiempo leyendo el código, intentando depurarlo o modificarlo, en lugar de escribirlo en primer lugar).

Lo que he visto hasta ahora es una gran diversidad de estándares de carcasa.

En lo que a mí respecta, uso el estilo C # para escribir mi código JavaScript. Uso muchas clases (bueno, funciona como clases, y generalmente no tengo funciones independientes). Entonces, uso PascalCase para nombres de clases, métodos públicos, propiedades y todas las variables globales y camelCase para argumentos, variables locales y funciones privadas. Esto de alguna manera refleja mi entorno común, ayudando a distinguir los ámbitos variables. También tiendo a mantener mis funciones de clase en un archivo separado con el mismo nombre que mi ClassName (ClassName.js, ClassName.min.js).

Esto fue sobre mi enfoque.

También noté que los programadores de Java siguen las reglas de Java (y el estilo de escritura se asemeja al lenguaje de Java). Los programadores de Ruby on Rails siguen sus propios estándares de nombres como underscore_separated_var_name .

Además, como mencionó, hay una tendencia a usar mucho pascalCase para nombrar en marcos muy populares cuyos autores provienen de diferentes comunidades como Linux / Open source community y desarrolladores de Microsoft (jQuery, knockout.js, JSJaC, etc. )

Debo señalar que ninguno de estos métodos es incorrecto o correcto, cuando se trata de JS. El propósito principal de sus convenciones de nomenclatura y estructuración de archivos es la legibilidad. Si es coherente, en el futuro y sus colegas desarrolladores comprenderán rápidamente y seguirán con su código.

Prefiero camelCase para todo excepto para constructores. La razón (y creo que esta es la razón por la cual el Sr. Crockford también sugirió esto) es porque en otros lenguajes, como Java, la convención es capitalizar sus clases, que es para lo que se utilizan los constructores.

Ese es mi $ 0.02.

Todas las minúsculas con separadores de subrayado son las más fáciles de leer; Sigue el lenguaje natural. " Mejor " te llevará a una guerra santa; la realidad es que el caso no importa tanto como otros problemas de diseño, pero es un tema fácil de polarizar.

ALongButNotReallyReadableIdentifier
an_even_longer_but_completely_readable_identifier

La respuesta aceptada es verdadera pero hay algunas excepciones. En window.JSON y window.XMLHttpRequest, el término se escribe con mayúscula.

Además, la mayoría de las personas usan PascalCase para objetos de tipo enum en Javascript y valores en mayúsculas. A veces, los espacios de nombres también se realizan en PascalCase.

ejemplo: MyCompany.Web.UI.MyComponent.ThemeOption = {NEGRO: 0, PLATA: 1, AZUL: 2}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top