Artigos > Front-end

Ampliando a String do JavaScript

alexandre-aquiles
alexandre-aquiles

Será que existe alguma maneira de reverter os caracteres de uma String em JavaScript?


"arroz".reverse(); //TypeError: "arroz".reverse is not a function

É... Parece que não...

Mas um Array tem essa função de reverter:


[1,2,3].reverse(); //[3,2,1]

Poderíamos transformar a String em Array com split, reverter esse Array e transformá-lo novamente em String com um join. Tipo:


"arroz".split("").reverse().join(""); //"zorra"

Funcionou!

Seria legal se pudéssemos colocar esse nosso código na String do JavaScript... O incrível é que podemos!


String.prototype.reverse = function(){ 
    return this.split("").reverse().join(""); 
}

No código anterior, usamos o prototype de String: um objeto compartilhado por todas as Strings do JavaScript. Ao colocar a nova função reverse como propriedade desse prototype das Strings, estamos colocando essa nova função para todas as Strings!


"arroz".reverse(); //"zorra" 
"uva".reverse(); //"avu"
"ovo".reverse(); //"ovo"

Essa técnica de mudar detalhes da linguagem (como String), colocando código a mais é chamada de Monkey Patching, ou remendo em bom português. O pessoal mais experiente recomenda que você não use isso em seus projetos. Poder pode, mas não deve... Imagine se todas as bibliotecas que você usa fizessem esse tipo de coisa com a String... Ia virar uma bagunça!

Aprenda mais sobre a linguagem Javascript com nossos cursos de Javascript. Se preferir cursos presenciais, temos a Formação Front-End na Caelum.

Leia também:

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software

Artigos > Front-end

Cursos profissionais de Front-end é na Alura, comece agora!

  • 1269 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1269 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1269 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1269 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas