Leer carácter de un string
A efectos de código podemos ver el valor de un string como una lista de caracteres. Y como en cualquier lista esos caracteres se pueden leer de manera individual
- Directametne por su posición como si fuera un array
- string.charAt() Leer el caracter en posición indicada por el argumento
- charCodeAt() Lee el código Unicode del caracter señalado en el argumento
- codePointAt() Lee el código Code Point del caracter señalado en el argumento
El más simple es el acceso directo por el índice o posición del carácter en la cadena, teniendo en cuenta que la posición más a la izquierda tiene como índice 0, mientras que el índice del último caracter es la longiud de la cadena menos 1.
La lectura directa tiene la misma notación que el acceso a los arrays, el nombre de la cadena seguido por el índice encerrado entre corchetes.
El método charAt(ind) es idéntico al acceso directo, el argumento es la posición del carácter que se quiere leer.
En ambos casos el valor devuelto es un carácter, un string de longitud 1.
var frase = "Leer la letra pequeña" ;
var inicial = frase[0];
var letraIni = frase.charAt( 0 );
console.log(inicial); //L
console.log(letraIni); //L
En ambos casos obtenemos la letra L como inicial de la frase. Aunque el acceso por índice directamente se parece al de los arrays, en este caso se trata de leer el carácter, no se puede modificar
Los otros dos métodos charCodeAt() y codePointAt() actúan de manera similar usando el índice o posición del carácter a leer pero en lugar de un string devuelve el código Unicode del carácter leído, bien sea el UTF-16 (de 0 a 65535, hexadecimal \0xFFFF). Mientras que codePointAt devuelve los códigos ampliados para juegos de caraceteres especiales donde no llegan los charCode.
var emoti = "😂😃😔😏";
var signos = "♥✅✴";
var cad = "Hola";
console.log( emoti.codePointAt(0) );
console.log( signos.charCodeAt(0) );
console.log( cad.charCodeAt(0) );