UTF-16 es el formato interno de javascript para almacenar cadenas. Importante: no está vinculado a la codificación de la página (encoding). Por lo tanto, no importa si un sitio web especifica "ISO-8859-1" o "UTF-8" en el encabezado. javascript siempre usa UTF-16.
javascript usa UTF-16 para sus strings pero no para su código fuente. Es posible tener scripts de javascript escritos en otros formatos y si el parser se llegará a confundir puede haber problemas a la hora de interpretar los strings. De igual manera, si un documento de HTML especifica un formato diferente al del archivo en sí es posible que el texto del documento acabe distorsionado y que javascript a la hora de interactuar con el documento también acabe con los strings malformados.
No se recomienda una barra invertida "\" al final; funciona en algunos navegadores, pero no hay soporte completo. Por lo tanto, es una idea estúpida usar esa variante.
document.getElementById("salida").innerHTML = "Hola \
mundo";
No es ninguna tontería, es parte del estándar y ya tiene sus buenos años ahí. Me preocuparía más si tu navegador no lo interpreta correctamente.
En el siguiente ejemplo se determina la longitud de caracteres de la cadena "x" y se almacena en otra cadena. ¿Por qué se almacena esto en una nueva cadena extra y no se imprime directamente?
var x = "Hola mundo";
var longitud = x.length;
alert(longitud);
Importante: no hay corchetes después de la propiedad length. ¿Por qué? ¡Es una propiedad y no un método o una función!
La propiedad
length no es una cadena de caracteres. Es un número, que representa la longitud del string.
Por lo general a los caracteres que se utilizan en una llamada de una función se les llama paréntesis (
( )) y no corchetes (
[ ]).