2009-06-03 20 views
52

vi this question y me pregunto de lo mismo en JavaScript.¿Cuál es la diferencia entre 'y "en JavaScript?

Si utiliza el carácter' o el carácter" al hacer cadenas en Javascript, la aplicación parece comportarse igual Entonces, ¿cuál es la diferencia entre estos dos personajes?

La única ventaja que he visto en el uso de "formar cadenas es que puedo hacer cosas como:

var toAppend = '<div id="myDiv1"></div>'; 

En lugar de:

var toAppend = "<div id=\"myDiv1\"></div>"; 

¿Hay alguna diferencia significativa entre ellos que yo debe tener en cuenta?

Respuesta

63

Son equivalentes para todos los efectos. Si desea utilizar cualquiera dentro de una cadena, es una buena idea usar la otra para crear la cadena, como notó. Aparte de eso, es todo lo mismo.

17

No hay diferencia. La razón de su existencia es exactamente lo que usted ha mencionado

-1

Su ejemplo es el mejor ejemplo para describir la diferencia entre los dos ....

2

Creo que hay otra diferencia. Si hace lo siguiente

var str1 = 'The \' character'; 
var str2 = 'The " character'; 
var str3 = "The ' character"; 
var str4 = "The \" character"; 
document.write (str1.replace("'","%26"); 
document.write (str2.replace('"',"%22"); 
document.write (str3.replace("'","%26"); 
document.write (str4.replace('"',"%22"); 

The document.write fallará para str1 y str4. Esa es la diferencia, pero no sé si hay una solución para que funcionen.

+1

¿En qué navegador fallan esas document.writes? No logré que fallen. (Una vez que coloque suficientes corchetes de cierre en ese código) –

33

Aunque no es técnicamente una diferencia en Javascript, vale la pena señalar que las cadenas entre comillas simples son not valid JSON, per se. Creo que la gente asume automáticamente que, dado que JSON es JS válido, las cadenas JS válidas también son válidas para JSON, which isn't necessarily true.

P. ej., {'key': 'Some "value"'} no es JSON válido, mientras que {"key": "Some 'value'"} es.

2

buenas prácticas, de acuerdo con Mozilla, es el uso de "" en HTML (en la que '' no se puede utilizar) mientras que reserva '' en Javascript (donde tanto "" y '' se puede utilizar indistintamente) ...

+0

Las comillas simples se pueden usar en HTML: http://stackoverflow.com/questions/273354/are-single-quotes-allowed-in-html –

+0

Sí, de acuerdo con la norma , pero "algunos clientes HTML (navegadores no necesarios) tienen problemas compatibles en una sola cita" ... Por lo tanto, sugiero seguir las directrices de Mozilla. – davidbourguignon

Cuestiones relacionadas