2011-10-01 38 views
16

Al usar gjslint, recibí una sugerencia: "Cadena de comillas simples preferida sobre cadena de comillas dobles".por qué "cadena de comillas simples preferida sobre cadena de comillas dobles". en js?

¿Por qué? Estoy un poco confundido con esto. ¿Por qué prefiere una sola cita?

Espero obtener ayuda. Gracias a todos.

+0

Bueno, por ejemplo, [JSLint] (http://www.jslint.com/) prefiere las cadenas de comillas dobles sobre las cadenas de comillas simples. –

Respuesta

20

Es solo la opinión de alguien.

Mucha gente prefiere las frases sueltas, pero muchas otras personas prefieren las comillas dobles. Tiendo a usar comillas dobles por costumbre de otros idiomas, pero no tengo una preferencia fuerte: estoy dispuesto a cambiar si escucho una razón convincente de por qué las comillas simples son mejores, pero hasta la fecha yo ' Ni siquiera he oído un buena razón, y mucho menos un convincente razón.

Incluso el Google JavaScript Style Guide dice que las comillas simples se prefieren sin dar una buena razón:

"para mantener la coherencia comillas simples (') se prefieren a las comillas dobles ("). Esto es útil para crear cadenas que incluyen HTML"

(A continuación, pasa a dar una muy breve ejemplo de una cadena que ni siquiera incluye HTML.)

Mucha gente parece cree que XHTML solo es válido con comillas dobles, pero eso no es cierto: la especificación XHTML permite cualquiera. (Habiendo dicho eso, el 98% del XML que he encontrado, incluyendo XHTML, usa con comillas dobles).

Dentro de cualquier archivo de origen trato de atenerme a uno u otro, pero si una línea de código en el medio necesita una gran cantidad de emb citas editadas que estaría feliz de cambiar solo por esa línea para evitar mucho escape en esa línea.

ACTUALIZACIÓN: Acabo de recordar que JSON solo es válido con comillas dobles. Obviamente, JSON no es JavaScript, pero sigue siendo una razón por la cual (a) algunos prefieren las comillas dobles en su JavaScript para que los literales de los objetos parezcan JSON, y (b) algunos prefieran las comillas simples para que puedan codificar manualmente JSON sin tener que escapar de las comillas dobles. (No, no recomiendo codificar manualmente JSON, pero lo he visto hecho).

+2

Eso está bien hasta que te encuentras con un bromista que ha decidido analizar XHTML con expresiones regulares ... –

+1

@Donal - ¡Ja! Bueno, esa persona tiene más problemas que el tipo de citas que elijo usar. – nnnnnn

+0

Hay una famosa respuesta SO para esas personas ... –

16

Si utiliza comillas simples, no tiene que escapar de las comillas dobles en su html.

Por ejemplo ...

Con comillas simples que usted puede hacer esto

var a = '<a href="something.html" rel="yes" title="whatever">a link/a>';

con comillas dobles que se necesitan para escapar de los que están dentro de comillas dobles, así como

var a = "<a href=\"something.html\" rel=\"yes\" title=\"whatever\">a link/a>";

Mucho más trabajo, más difícil de mantener y más fácil de cometer errores.

+21

Solo puedo usar comillas simples para atributos de HTML. – BoltClock

+1

True @BoltClock. Aunque creo que la mayoría de las personas que desarrollan en HTML usan comillas dobles. –

+2

Esto también funciona a la inversa, cuando tienes cadenas de Javascript dentro de los atributos en el HTML (una ocurrencia común con el motor de plantillas que uso) – hugomg

1

Mi teclado tiene una tecla '/', así que puedo escribir fácilmente una comilla simple pero necesito presionar shift para la comilla doble .:)

En cuanto a las advertencias de JSLint, solo trata de imponer un estándar arbitrario para promover un estilo de codificación más uniforme, al igual que lo hace en otros problemas de espacio e indentación.

1

En términos de rendimiento, de acuerdo con http://jsperf.com obtiene casi el mismo rendimiento para ambos en algunos navegadores, en otros obtiene el mismo rendimiento.

Hay una gran cantidad de pruebas en jsperf y todos ellos conseguir casi el mismo resultado:

En conclusión creo usar comillas simples o dobles es solo una cuestión de gusto y no una cuestión de rendimiento.

Atentamente.

Cuestiones relacionadas