2009-06-03 25 views
52

ho visto this question e mi chiedo la stessa cosa in JavaScript.Qual è la differenza tra 'e "in? JavaScript

Se si utilizza il carattere' o il carattere", quando fare le stringhe in JavaScript, l'applicazione sembra comportarsi allo stesso modo. Quindi qual è la differenza tra questi due personaggi?

L'unico vantaggio che ho visto in utilizzando 'per costruire le stringhe è che posso fare cose come:

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

Invece di:

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

C'è qualche differenza significativa tra loro che ho dovrebbe essere a conoscenza di?

risposta

63

Sono equivalenti a tutti gli effetti. Se vuoi usare uno dei due all'interno di una stringa, è una buona idea usare l'altro per creare la stringa, come hai notato. A parte questo, è lo stesso.

17

Non c'è differenza. La ragione per la sua esistenza è esattamente ciò che lei ha citato

-1

Il vostro esempio è l'esempio migliore per descrivere la differenza tra i due ....

2

Penso che ci sia un'altra differenza. Se si esegue la seguente operazione

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"); 

document.write non riuscirà per str1 e str4. Questa è la differenza, ma non so se c'è una soluzione per farli funzionare.

+1

In quale browser le document.writes falliscono? Non sono riuscito a farli fallire. (Una volta inserisco abbastanza parentesi di chiusura in quel codice) –

33

Sebbene non sia tecnicamente una differenza in Javascript, vale la pena notare che le singole stringhe tra virgolette sono not valid JSON di per sé. Penso che le persone assumano automaticamente che dal momento che JSON è JS valido, le stringhe JS valide sono anche JSON valide, which isn't necessarily true.

E.g., {'key': 'Some "value"'} non è valido JSON, mentre {"key": "Some 'value'"} è.

2

buona pratica, secondo Mozilla, è quello di utilizzare "" in HTML (dove '' non può essere usato), pur riservandosi di '' in Javascript (dove sia "" e '' può essere utilizzato indifferentemente) ...

+0

Le virgolette singole possono essere utilizzate in HTML: http://stackoverflow.com/questions/273354/are-single-quotes-allowed-in-html –

+0

Sì, secondo lo standard , ma "alcuni client HTML (browser non necessari) hanno problemi compatibili con la citazione singola" ... Pertanto suggerisco di seguire le linee guida di Mozilla. – davidbourguignon

Problemi correlati