O que é o construtor Number e como ele funciona para coerção de tipo?
O construtor
Number() é usado para criar um objeto número. O objeto number contém algumas propriedades e métodos úteis como o método isNaN e o toFixed. Aqui está um exemplo usando o construtor Number() com a palavra-chave new:
const myNum = new Number("34");
console.log(typeof myNum); // "object"
Neste exemplo passamos um literal de string para o construtor Number() e o tipo de retorno é do tipo object em vez de um string.
Quando o construtor Number() é chamado como uma função sem a palavra-chave new, o valor retornado será do tipo primitivo number. Na maioria das vezes você usará o construtor Number() para converter outros tipos de dados para o tipo de dado número. Aqui está um exemplo de como converter uma string em um número:
const myNum = Number("100");
console.log(myNum); // 100
console.log(typeof myNum); // number
Isso é útil quando você está recebendo entrada do usuário e precisa converter essa entrada de string em um número para que possa realizar cálculos matemáticos.
Se você tentar chamar o construtor Number() através de uma string vazia, o resultado será o número 0:
const num = Number("");
console.log(num); // 0
Isso acontece porque o JavaScript tentará analisar a string e, como ela não contém nenhum dígito, o resultado será zero.
Se você tentar passar uma string com caracteres aleatórios, o resultado será NaN ou "Not a Number".
const num = Number("random");
console.log(num); // NaN
Ao trabalhar com booleanos, true retorna 1 porque true é convertido para um e false retorna 0 porque false é convertido para zero.
const boolTrue = Number(true);
const boolFalse = Number(false);
console.log(boolTrue); // 1
console.log(boolFalse); // 0
Se você passar null, o resultado será 0 e se você passar undefined, o resultado será NaN.
const undefinedNum = Number(undefined);
const nullNum = Number(null);
console.log(undefinedNum); // NaN
console.log(nullNum); // 0
Ao trabalhar com arrays há algumas coisas a considerar.
Um array vazio retornará 0. Um array com um único número retornará esse número. Um array com múltiplos números retorna NaN. E um array com string(s) também retornará NaN.
const emptyArr = Number([]);
const arrOneNum = Number([7]);
const arrMultiNum = Number([7, 36, 12]);
const arrStr = Number(["str1"]);
const arrMultiStr = Number(["str1", "str2"]);
console.log(emptyArr); // 0
console.log(arrOneNum); // 7
console.log(arrMultiNum); // NaN
console.log(arrStr); // NaN
console.log(arrMultiStr); // NaN
Ao trabalhar com objetos, o resultado é sempre NaN.
const obj1 = Number({});
const obj2 = Number({2: 2});
const obj3 = Number({key: "val"});
const obj4 = Number({key: true});
console.log(obj1); // NaN
console.log(obj2); // NaN
console.log(obj3); // NaN
console.log(obj4); // NaN
Em conclusão, você usará principalmente o construtor Number() para conversão de tipo mais do que para criar um número ou um objeto number.Este módulo não possui perguntas. Marque como concluído.