Crear una string
La creación de un objeto String puede hacerse por varios caminos
- Expresión asignando una cadena de caracteres a una variable.
- Operador new: una instancia del objeto String
- fromCharCode() y fromPointCode(): a partir de códigos
La expresión directa consiste en asignar a a una variable una cadena entrecomillada de caracteres alfanuméricos y otros signos gráficos. Se crea una primitiva string, que internamente es convertida a objeto y se usa exactametne igual que un objeto.
El operador new aplicado al objeto String crea una instancia del objeto, cuyo valor es una cadena de caracteres y puede usarse como cadena de caracteres.
Solo hay un caso donde se debe diferenciar entre primitiva string y objeto String: se trata de la función eval(). Esta función espera como argumento una cadena de caracteres (una primitiva string) si recibe un objeto string devolverá el mismo resultado que objeto.tostring()
var area = "5*10";
var superficie = new String("5*10");
console.log("Area: "+ area + " = "+eval(area) );
console.log("Area: "+ superficie + " = "+eval(superficie) );
Como ves en el ejemplo eval(area) realiza el cálculo indicado en la cadena, mientas que eval(superficie) muestra el objeto convertido en string, sin evaluarla.
En las expresiones de caracteres, si los caracteres se encierran entre acentos inversos (` `) se pueden introducir variables entre los simbolos ${ y }, estas variables aparecen en la cadena con su valor. No es indispensalbe y puede dar lugar a errores,, además existen métodos más simples. Estas cadenas se denominan templatesString
var dia = 31;
var fecha = `El día ${dia} de Enero`;
console.log (fecha);
fecha = "el día "+dia+" de Enero";
console.log (fecha);
Como ves en ambos casos el valor de dia se introduce en la cadena fecha. Recomendable sin lugar a dudas el segundo método en este caso.
También podemos crear una string a partir de los códigos Unicode de los caracteres que forman la cadena. Utilizable esto en casos un poco especiales como las fuentes usadas para iconos o caracteres internacionales. Los métodos para esto son los métodos estáticos String.fromCharCode() que usa como argumento una sucesión de códigos Unicode UTF-16 (0-65535, válido para UTF-8) y String.fromCharPoint() cuyo argumetno es una sucesión de códigos unicode para casos donde se usan caracteres de dóble código
var cadena, emoti;
cadena = String.fromCharCode(0x0040, 0x0041);
console.log (cadena);
emotis = String.fromCodePoint(0x1f606, 0x1f608)
console.log (emotis);
Puede que en agluna ocasión tengas que usarlos. Pues aquí tienes la manera.