2012-06-01 9 views
6

Me di cuenta de que he estado cambiando entre ellos sin entender el por qué, y me resulta difícil de buscar.¿Qué significa '', y "", y sin comillas en Javascript?

+2

¿Puedes hacer un ejemplo específico? –

+4

Las cadenas pueden usar '" "' o '''', no importa (elija la que hace que necesite escaparse menos ('' Mr. O'Neil "' o ''Dije' hola '' '). Los números no necesitan ser citados, ej.' 12'. –

Respuesta

16

' ' y " " son lo mismo; se usan para definir literales de cadena.

Las cosas sin comillas pueden ser un identificador, palabra clave, literal no de cadena, nombre de propiedad o un número (puede haber perdido uno).

Ejemplos:

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

literales de cadena que están entre comillas simples no necesitan comillas dobles escapado y viceversa, por ejemplo:

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

Los dos últimos realmente no serían considerados identificadores, ¿verdad? Me parece que son la sintaxis literal de sus tipos individuales (número y expresión regular), al igual que los primeros dos ejemplos de cadenas. –

+1

@amnotiam usted hace un punto válido; los he reclasificado como literales :) ¡gracias! –

+1

Ah, ahí estamos. +1 Solo otras cosas (que se me ocurren) en la categoría de * cosas sin comillas * serían operadores y terminadores de enunciados ... y supongo que en blanco si quieres contar eso. –

5

" y ' son intercambiables (pero necesitan ser usado juntos).

myObject["property"] y myObject.property también son intercambiables. $var foo = "property"; myObject[foo] también (por comentario a continuación).

+0

'myObject [propiedad]' obtiene la propiedad de myObject nombrada con el valor de propiedad – pbfy0

6

' ' y " " solía citar cadena literal y representa cuerda (s) mientras que literal y sin cita son variables (nombre de variable, constante) saben como identificador, ejemplo

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


var = "Ho There" 

Es posible pregunta, ¿cuál es el diferencia entre ' (single quote) y " (Double quote)

Diferencia es, cadenas dentro de " si tienen un carácter especial, entonces tienen que escapar. Ejemplo:

variable = "Hola" no "; ---> aquí tiene que escapar del interior " cadena como

Variable = "hi \" there"; 

Pero si se utiliza, ' entonces no hay necesidad de escapar (a menos que haya una ' adicional en cadena). puede hve como

var = 'Hello " World"'; 
0

Un jsFiddle rápida alrededor y las dos comillas simples y dobles códigos de escape de control, etc.

En los últimos días he tenido errores de HTML donde las comillas dobles no se han utilizado, y si miras la especificación de JSON notarás que es una comilla doble que se solicita al citar literales de cadena. Así que son dos comillas, creo yo, la convención, por razones históricas.

¡Sin embargo! En estos días de escribir JS en el lado del servidor, debo admitir que tiendo a ser arrastrado a mis raíces C y una comilla doble donde quiero caracteres escapados y cadenas de comillas simples que son literalmente caracteres reales y que probablemente nunca contengan caracteres escapados (aunque esto es comportamiento esencialmente no productivo). Además de que la mayoría de mis JS es coffeescript hoy en día, nadie escribió javascript por elegancia, sin embargo, CS es un hervidero de peces diferente.

Cuestiones relacionadas