3
respostas

Retornando Nan no navegador

Bom dia, Estou fazendo o curso de javaScripr e estou atribuindo a uma variável um calculo de dois valores inteiros e no navegador retorna NaN estou tentando usar o contructo no Js e informando no Html os valores segue o código,

html
<script>
var n1= new Negociacao();
         var volume1 = n1.quantidade * n1.valor;
             n1.quantidade = 10;
             n1.valor = 200;
             console.log(n1);
             console.log(volume1 + " Este é o volume da negociação n1");
</script>

JS
constructor(data, quantidade, valor ) {
    this.data = data; 
    this.quantidade = quantidade; 
    this.valor= valor; 
}

` Criei duas variáveis para fazer testes e esta está retornando not a number

3 respostas

Tudo certo, Jorge?

O problema é que no momento em que você atribui a multiplicação ao volume1, elas não possuem valores, e por consequência não são números.

No construtor, você espera receber elas no momento de criação, como: new Negociacao(new Date(), 10, 200), por exemplo. Mas você não fez isso no código em que cria a n1, e assim, as variáveis ficaram vazias.

Depois, você até define elas, mas o valor problemático já foi salvo em volume1. O que você pode fazer é passar os valores pelo construtor, como esperado, ou alterar a ordem das operações para que a definição dos valores venham antes da atribuição, como abaixo:

n1.quantidade = 10;
n1.valor = 200;
var volume1 = n1.quantidade * n1.valor;

Espero ter ajudado e bons estudos!

Bom dia Eu acredito que ainda esteja com dificuldade em saber onde exatamente eu escrevo a ação que quero executar com o programa. no HTML ou no JS pois de acordo com os exemplos eu posso fazer a chamada das variáveis tanto no JS ou no HTML certo ? por exemplo se eu quero escrever algo na tela , ( sem usar o devtools ) eu posso comandar um console.log no HTML que ele faz aparecer algo na tel, por exemplo um aleret , ou no JS , que também faz aparecer certo. então

Oi, Jorge!

Sim, dentro da tag <script> do HTML, os seus comandos JavaScript funcionam da mesma forma que funcionariam se estivessem em um arquivo separado.

No caso de um arquivo separado, você precisa importar no HTML, usando também a tag <script> (<script src="./index.js"></script>, onde ./index.js é o caminho que o seu HTML precisa percorrer para acessar o arquivo JS, que no exemplo está na mesma pasta, representada por ./).

Quando você importa um arquivo no HTML, ele é executado também, por isso que o resultado é similar a escrever o código direto na tela.

Se deve fazer um ou outro, por hora, recomendo você seguir a maneira que o curso está fazendo: classes em arquivos separados, mas a execução de comandos no próprio HTML. Futuramente você verá isso melhor.

Bons estudos!