\n\nAo executar o código, o resultado do processamento do Javascript compatível com o ECMAS 2021 é:","inLanguage":"pt-BR","eduQuestionType":"Multiple choice","acceptedAnswer":{"@type":"Answer","text":"C) -6.. Em JavaScript, o operador `~` é o complemento bit a bit. Na prática, ele inverte todos os bits do número depois de convertê-lo para um inteiro de 32 bits com sinal. Por isso, ele não funciona como um sinal de menos comum nem como uma conta aritmética direta.\n\nExiste uma regra bem útil para decorar: `~x = -(x + 1)`. Então, quando o código faz `~5`, o resultado é `-(5 + 1)`, ou seja, `-6`. O valor é convertido e processado segundo o comportamento dos operadores bit a bit do ECMAScript 2021.\n\nNo código da questão, esse valor vai para `innerHTML`, então o conteúdo exibido no parágrafo será `-6`. A banca quer justamente ver se você conhece esse detalhe clássico de JavaScript, que costuma aparecer como pegadinha para quem confunde `~` com `-` ou com uma negação lógica.\n\nResumo de concurso: `~` não é “menos”, não é “negação booleana” e não gera `NaN`. É um operador bit a bit, e com `5` ele devolve `-6`."},"suggestedAnswer":[{"@type":"Answer","text":"A) 6."},{"@type":"Answer","text":"B) ~5."},{"@type":"Answer","text":"D) -5."},{"@type":"Answer","text":"E) NaN."}]}← Questões de Programação

Programação · FGV · 2025

Questão comentada de Programação

Analise o código a seguir. <!DOCTYPE html> <html> <body> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = ~ 5; </script> </body> </html> Ao executar o código, o resultado do processamento do Javascript compatível com o ECMAS 2021 é:

Gabarito: C

Em JavaScript, o operador `~` é o complemento bit a bit. Na prática, ele inverte todos os bits do número depois de convertê-lo para um inteiro de 32 bits com sinal. Por isso, ele não funciona como um sinal de menos comum nem como uma conta aritmética direta. Existe uma regra bem útil para decorar: `~x = -(x + 1)`. Então, quando o código faz `~5`, o resultado é `-(5 + 1)`, ou seja, `-6`. O valor é convertido e processado segundo o comportamento dos operadores bit a bit do ECMAScript 2021. No código da questão, esse valor vai para `innerHTML`, então o conteúdo exibido no parágrafo será `-6`. A banca quer justamente ver se você conhece esse detalhe clássico de JavaScript, que costuma aparecer como pegadinha para quem confunde `~` com `-` ou com uma negação lógica. Resumo de concurso: `~` não é “menos”, não é “negação booleana” e não gera `NaN`. É um operador bit a bit, e com `5` ele devolve `-6`.

Continue treinando

Questões relacionadas