2012-06-01 8 views
6

Mi sono reso conto che stavo passando da uno all'altro senza capire il perché, e sto trovando difficile cercare.cosa significa "", "" e "nessuna virgoletta" in Javascript?

+2

Puoi fare un esempio specifico? –

+4

Le stringhe possono usare sia "" "o" ", non importa (scegli quella che ti obbliga a scappare di meno (" "Mr. O'Neil" o "Ho detto" ciao "" '). I numeri non devono essere citati, ad esempio' 12'. –

risposta

16

' ' e " " sono la stessa cosa; sono usati per definire stringhe letterali.

Le cose senza virgolette possono essere un identificatore, una parola chiave, un valore letterale non stringa, un nome di proprietà o un numero (potrebbe averne perso uno).

Esempi:

"hello world"  literal (string) 
'hello world'  literal (string) with same contents 
document    identifier (object) 
{ a: 1 }    property name 
if     keyword (start conditional statement) 
3.4     literal (number) 
/abc/    literal (regex object) 

stringhe letterali che sono racchiusi in virgolette singole non hanno bisogno virgolette doppie a fuggire e viceversa, ad esempio:

'<a href="">click me</a>' HTML containing double quotes 
"It's going to rain"   String containing single quote 
+3

Gli ultimi due non sarebbero realmente considerati identificatori, vero? Mi sembra che siano la sintassi letterale dei loro singoli tipi (numero ed espressione regolare), proprio come i primi due esempi di stringhe. –

+1

@amnotiam si fa un punto valido; li ho riclassificati come letterali :) grazie! –

+1

Ah, ci siamo. +1 Solo altre cose (che posso pensare) sotto la categoria di * roba senza virgolette * sarebbero operatori e terminatori di istruzioni ... e suppongo spazi bianchi se vuoi contare questo. –

5

" e ' sono intercambiabili (ma hanno bisogno di essere usato insieme).

myObject["property"] e myObject.property sono anche intercambiabili. $var foo = "property"; myObject[foo] (per commento sotto).

+0

'myObject [proprietà]' ottiene la proprietà di myObject con il valore di proprietà – pbfy0

6

' ' e " " utilizzato per citare stringa costante e rappresenta string (s), mentre letterale senza virgolette sono variabili (nome della variabile, una costante) conoscono come identificatore, ad esempio

variable = 'Hello'; (Here `variable` is identifier and 'Hello' is string literal) 


var = "Ho There" 

Si potrebbe domanda, qual è il differenza tra ' (single quote) e " (Double quote)

La differenza è, stringhe entro " se hanno carattere speciale, quindi devono fuggire. Esempio:

Variabile = "hi" là "; ---> qui è necessario per sfuggire alla " all'interno stringa come

Variable = "hi \" there"; 

Ma se si utilizza, ' quindi non c'è bisogno di sfuggire (a meno che non v'è una in più ' nella stringa). È possibile hve come

var = 'Hello " World"'; 
0

Un jsfiddle rapido giro e sia le virgolette singole e doppie fuga codici di controllo ecc

Negli ultimi giorni ho riscontrato errori dall'HTML in cui non sono state utilizzate le virgolette doppie e, se si osserva la specifica per JSON, si noterà che si tratta di una doppia virgoletta richiesta quando si citano stringhe letterali. Quindi sono le doppie virgolette che penso sia la convenzione, per ragioni storiche.

Tuttavia! In questi giorni di scrittura sul lato server JS devo ammettere che tendo ad essere richiamato alle mie radici C ea virgolette doppie dove voglio caratteri di escape e stringhe di quotatura singola che sono in effetti caratteri letterali e che probabilmente non contengono mai caratteri di escape (anche se questo è comportamento essenzialmente non produttivo). Oltre al fatto che oggigiorno la maggior parte del mio JS è coffeescript, nessuno ha mai scritto javascript per l'eleganza, tuttavia CS è un diverso tipo di pesce.

Problemi correlati