Hay algunas situaciones en que son diferentes. Por ejemplo, si está utilizando jQuery y está haciendo una lista de parámetros para pasar al invocar el comando jQuery $() para crear un elemento, las palabras entrecomilladas se convierten en parámetros y las palabras no citadas se convierten en funciones. Por ejemplo, "tamaño" establecerá el atributo de tamaño del objeto, y el tamaño (sin comillas) llamará a la función de tamaño() en el objeto. Ver jQuery(), cerca de la parte inferior:
Mientras que el segundo argumento es conveniente, su flexibilidad puede conducir a consecuencias no deseadas (por ejemplo, $ ("<input>
", {size: "4"}) llamando al.método size() en lugar de establecer el atributo de tamaño). El bloque de código anterior por lo tanto se podría escribir en cambio, como:
En realidad, las cotizaciones _es hacer una diferencia si se utiliza un literal numérico como un nombre de propiedad. Por ejemplo, 'obj = {12e34: true};' no es lo mismo que 'obj = {'12e34': true};'. El primero requeriría que accedieras a la propiedad a través de 'obj ['1.2e + 35']', mientras que para este último usarías 'obj ['12e34']'. [Ver mi respuesta para más detalles.] (Http://stackoverflow.com/a/9568622/96656) –
Verdad, pero sería genial si las comillas dobles fueran opcionales dado el primer carácter + alfa-numérico y puede que algunos fanáticos del espacio en blanco aka espacios invisibles o pestañas? ideal para datos no anidados profundamente. –