Cambiar tipo de dato
Estos métodos permiten convertir los strings en otro tipo de dato:
- split(): Obtiene un array de la cadena
- valueOf(): extrae la primitiva del objeto
El primer método split( separador ) divide la cadena en una lista de subcadenas individuales que se devuelven como un array. Digamos que convierte el string en un array.
Las subcadenas son los caracteres separados por el carácter indicado en el argumento con que se invoca el método. Este carácter se elimina del resultado.
var notas = "Juan Garcia Sánchez";
var lista;
lista = notas.split(' ')
console.log( lista ) //['Juan', 'García9,'Sánchez']
En este ejemplo el separador es un espacio en blanco, por tanto la variable queda divida en tres partes que son los elementos del array creado.
El string original no se modifica, solo copia la lista en un nuevo array.
Si el separador es una cadena vacía se obtiene una lista con todos los caracteres por separado de la cadena.
var notas = "0123456789";
var lista;
lista = notas.split('');
console.log( lista ) ; //['0', '1,'2','3'...]
El argumento vacio no es falta de argumento null, si no se pasa argumento el array contiene un solo elemento con la cadena completa.
El método valueOf() devuelve el valor primitivo de un string. Cara al uso solo tiene sentido cuando sea necesario diferenciar ambos tipos, como es el caso de la función global eval()
var calculo = new String("10*34");
var res;
res = eval(calculo);
console.log(res); //String {"10*34"}
res = eval(calculo.valueOf());
console.log( res ) ; //340
En el primer caso eval no recibe una cadena y no evalua la expresión, en el segundo caso si recibe una cadena (primitiva de string) y la evalúa.
El método toString() funciona de manera similar a valueOf().