JavaScript – Uma String é um Array de Caracteres?

Postado por: Jeronimo Fagundes em

Algo bastante comum em qualquer linguagem de programação é querer acessar um determinado caracter de uma string. Geralmente fazemos isso tratando a string como se fosse um array, ou seja, sendo str a nossa variável que contém a string, bastaria fazer um str[4] pra acessar o quinto caracter da string, por exemplo.

Em JavaScript não deveria ser diferente. Você faz isso, testa no seu Firefox cheio de extensões (ou até mesmo em safe-mode), e tudo funciona. O seu cliente abre a página, e nos primeiros dez segundos ele diz que não funciona. Provavelmente seu cliente está usando o Internet Explorer.

Acessar um caracter específico de uma string em JavaScript como se fosse um array não funciona no IE. Por exemplo, se temos isso:

var str = "abcdef";
alert(str[4]);

No Firefox será alertado corretamente a letra “e”. No Internet Explorer, será alertado “undefined”. Assim, o recomendado é acessar um caracter específico com a função charAt, da classe String. Desse modo, o código ficaria assim:

var str = "abcdef";
alert(str.charAt(4));

E isso funciona em ambos os browsers.

Posts Relacionados

Confira também outros artigos interessantes postados aqui no blog.

Sobre Jeronimo Fagundes

Jerônimo Fagundes da Silva é desenvolvedor web, mora em Porto Alegre e é Bacharel em Ciência da Computação pela UFRGS. Atualmente, é desenvolvedor de aplicativos web na DATACOM Telemática.

2 Responses to “JavaScript – Uma String é um Array de Caracteres?”

  1. internet explorer! umas das maiores merdas que já foram criadas, é quando se copia as coisas dos outros sempre da alguma coisa errada, assim como o windows não presta o IE não seria uma exceção, o uso de hacks é a unica alternativa para que o trabalhado funcione perfeitamente em todos os “navegadores”, muito bom o post! Parabéns…abraço..

  2. Excelente post! Nem sabia que um caractere de uma string podia ser acessado como elementos de array. =D

    Porém o [b]charAt()[/b] não é errado de se usar – não que você tenha dito isso -, só que da outra maneira é mais curta de se fazer.

    Abraços.

Leave a Reply