⊗jsPmBsATC 43 of 505 menu

Conversão Automática de Tipos de Dados

Como você já sabe, strings em JavaScript devem ser colocadas entre aspas. Pode acontecer que todos os caracteres da string sejam dígitos:

let a = '123';

Neste caso, a variável a também é uma string, mas com uma nuance.

A essência da nuance é a seguinte: se uma operação matemática for executada em uma string com dígitos - essa operação será executada como se tivéssemos números de verdade, e não strings:

alert('2' * '3'); // exibirá 6

Neste caso, o JavaScript vê que estamos tentando executar uma operação inválida para strings, mas válida para números.

Ele também vê que, na verdade, nossas strings são números entre aspas. Portanto, o JavaScript realiza automaticamente a conversão dessas strings para números e executa a operação matemática correspondente sobre eles.

Isso funciona se nossas strings contiverem apenas dígitos. Se houver pelo menos uma letra - o JavaScript considerará a operação incorreta e resultará no valor NaN:

alert('2' * '3s'); // exibirá NaN

Além disso, a conversão automática ocorre se a operação for matematicamente correta, mas inválida para strings.

Por exemplo, strings não podem (mas números podem) ser multiplicadas, divididas, subtraídas, portanto, em todas essas operações haverá conversão automática de strings com dígitos para números.

No entanto, strings, assim como números, são somadas usando o operador +. Isso significa que, no caso da adição, não haverá conversão automática:

let a = '1' + '2'; alert(a); // exibirá '12' - ocorreu a concatenação de strings

Se um dos operandos for um número e o outro - uma string, a string sempre prevalece:

let a = 1 + '2'; alert(a); // exibirá '12'

Nesses casos, o JavaScript, ao contrário, converte automaticamente os números em strings e executa a concatenação de strings.

No entanto, há nuances quando há mais operandos do que dois: nesse caso, a conversão para um tipo específico depende da ordem de execução das operações.

No exemplo a seguir, primeiro 2 e 3 serão somados como números, e então o resultado será adicionado à string '1' já como a string '5', o que, no final, resultará na string '15':

let a = '1' + (2 + 3); alert(a); // exibirá '15'

Se os parênteses forem removidos, tudo será somado da esquerda para a direita. Ou seja, primeiro o número 2 será adicionado à string '1' e o resultado será a string '12'. Então, o número 3 será adicionado a esta string e o resultado será a string '123':

let a = '1' + 2 + 3; alert(a); // exibirá '123'

Mas no exemplo a seguir, os números 2 e 3 estão no início, então primeiro eles serão somados como números, resultando no número 5, e então a string '1' será adicionada a este número, resultando na string '51':

let a = 2 + 3 + '1'; alert(a); // exibirá '51'

Sem executar o código, determine o que será exibido na tela:

let a = '5' + '2'; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '5' + 2; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = 5 + '2'; alert(a);

Sem executar o código, determine o que será exibito na tela:

let a = 5 + 2; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '5' * '2'; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '5' - '2'; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '5' / '2'; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '5' % '2'; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '5s' * '2'; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '5s' + '2'; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = (-'5') + (-'2'); alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '5' * 1 + '2' * 1; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '5' * '1' + '2' * '1'; alert(a);

Sem executar o código, determine o que será exibido na tela:

let a = '' + 3 + 1; alert(a);
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar