Curso de JavaScript desde cero

¿Cómo utilizar el método de String charCodeAt con length?

Capítulo 42: El método de String charCodeAt y la propiedad length

Cambiamos totalmente de tema para descansar un poco de la programación orientada a objetos. Volvemos a los strings. Tema que ya dimos en la parte básica del curso. Ahora, vas a aprender nuevas cosas para manejar los strings.

El método charCodeAt()

El método charCodeAt() es parecido al método charAt() que vimos en el capítulo 9 de este curso. Este método indica como argumento la posición de un carácter como el método charAt(), solo que en lugar de devolvernos el propio carácter, nos devuelve el valor Unicode.

Palabra del lenguaje nº 54 encontrada.
charCodeAt() es un método que devuelve el código Unicode en decimal de un carácter.

Por cierto, las posiciones de string, por si no lo recuerdas, se empiezan a contar desde el valor 0.

let sitioWeb = "www.programacionfacil.org";

console.log(sitioWeb.charCodeAt(4));
console.log(sitioWeb.charCodeAt(3));
console.log(sitioWeb.charCodeAt(10));

Nos devuelve un valor de 112 para la letra "p" en minúsculas, que es el valor Unicode correspondiente. El número 46 para el "." y el 109 para la letra "m".

112
46
109

Veamos una tabla Unicode para comprobarlo. Haz click aquí para ir a unicodetable.com.

Haz click en cualquiera de los caracteres que hemos probado.

Unicode JavaScript

En la imagen puede ver dos números. El primero es el número en Unicode, el cual se representa en valores hexadecimales (0-9 y de la A a la F). En el código de entidad html, podemos ver el 112 en el caso de la p. Esto quiere decir, que el método charCodeAt() devuelve los valores Unicode expresados en decimales.

¿Cómo acceder a la última posición de un string en JavaScript?

Podemos utilizar una propiedad del objeto String llamada length, la cual nos va a devolver el número exacto de caracteres que tiene el string.

Palabra del lenguaje nº 55 encontrada.
length es una propiedad del objeto String que devuelve la longitud de caracteres de un string.
let sitioWeb = "www.programacionfacil.org";
console.log(sitioWeb.length);

Tenemos un string con 25 caracteres.

25

Utilicemos ahora estos conocimientos para con el método charCodeAt(). Supongamos que no hemos contado los caracteres totales y que no queremos contarlos a ojo (esto podría ser un string con 1000 posiciones).

let sitioWeb = "www.programacionfacil.org";

console.log(sitioWeb.charCodeAt(sitioWeb.length));

Vaya... No ha funcionado. Me devuelve un valor NaN. ¿Qué ha podido ocurrir aquí?

NaN

La respuesta es muy sencilla, te acabo de recordar que con los strings se empieza a contar desde el cero, por lo tanto, sitioWeb no posee la posición 25 que me devuelve la propiedad length. Las posiciones van de la 0 a la 24 (25 posiciones). Por lo tanto, tenemos que hacer una "trampita" y restarle al length del string un valor de 1 que nos dejará esta operación: longitudString - 1. Así, sin saber nunca la longitud de un string, podemos utilizar esta estrategia.

let sitioWeb = "www.programacionfacil.org";

console.log(sitioWeb.charCodeAt(sitioWeb.length-1));

Ahora sí, devuelve el valor Unicode decimal correspondiente al último carácter, tenga la longitud que tenga.

103

Estos conocimientos los puedes aplicar también al método charAt().

let sitioWeb = "www.programacionfacil.org";

console.log(sitioWeb.charAt(sitioWeb.length-1));
g

Ejercicios de JavaScript


Puedes utilizar una tabla Unicode para resolver estos ejercicios.
  1. ¿A qué carácter se corresponde el valor decimal 177 en Unicode?
  2. ¿Y el carácter decimal 54 en Unicode?
  3. ¿Qué valor decimal de Unicode es el carácter "Q"?

La solución la encontrarás aquí: Ejercicios resueltos de JavaScript.


Comentarios

Si te quedan dudas sobre el temario, sobre JavaScript o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Twitter

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.