Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

SyntaxError: Octal literals are not allowed in strict mode.

Boa noite. Quando crio o meu cliente não aceita o cpf que eu coloco const cliente1 = new Cliente("Marcelo",01685279817);

explode o erro : SyntaxError: Octal literals are not allowed in strict mode.

Consegui resolver o meu problema colocando ele como string e convertendo ele para numeros inteiros

const cliente1 = new Cliente("Marcelo",parseInt("01685279817"));

mas gostaria de entender o porque.

2 respostas

Olá Marcelo, tudo bem com você?

Esse problema é bem comum em linguagens de programação, acontece que quando começamos um número com 0, o node pensa que você está querendo inserir um número da base octal ao invés da decimal, e por isso ele lança um erro dizendo que escrever um numero octal de maneira literal não é permitida, então quando você fez isso:

parseInt("0321321312")

Parou de dar erro, mas se você tentar dar um console.log do cliente1.cpf vai ver que está diferente, isso porque com a transformação para número inteiro, o zero a esquerda foi excluído e dessa forma o compilador não disse que era um número octal, entretanto temos um cpf invalido agora!

Sinceramente, a melhor solução para isso é trabalhar com o cpf como um valor textual ao invés de numérico, e faz até muito sentido dado que não fazemos operações matemáticas com cpf, a única necessária é a de validação, mas para essa podemos criar uma função que faça isso recebendo um cpf no formato de string :)

Conseguiu Compreender?

Abraços e Bons Estudos!

solução!

Entendi sim, obrigado pelo suporte