DEV Community

Cover image for JavaScript Fundamentos - Tipos Objetos
Jorge Nascimento
Jorge Nascimento

Posted on

JavaScript Fundamentos - Tipos Objetos

Nesse post vamos conhecer um pouco sobre o tipo objeto da linguagem, sendo esse mais um fundamento importante para fortalecer nossa base em JavaScript.

Os Tipos Objetos são valores que representam uma referência em memória que pode ser alterada, os principais objetos globais utilizados são: Object | Regex |Function | Arrays | Math | Date entre outros.

Em JS tudo é objetos, mesmo os tipos primitivos se comportam como objetos quando precisamos utilizar métodos para sua manipulação.

typeof function sum(a, b) {
  return a + b;
}; // => 'function'
typeof { name: "Linus Torvald" }; // => 'object'
typeof [1, 2, 3, 4, 5]; // => 'object'
typeof /[a-zA-Z_$]/; // => 'object'
typeof new Date(); // => 'object'
Enter fullscreen mode Exit fullscreen mode
  • Vamos conhecer os principais tipos de objetos e algumas das API's fornecidas.

Objetos

Um objeto é uma coleção dinâmica de propriedades definidas por chaves, que podem ser do tipo string ou symbol, e valores que podem ser de qualquer tipo de dados.

É possível criar objetos de várias formas : pela notação literal, por meio de uma função construtura ou do método create da Object API

{} // literal
new Object(); // Construtora
Object.create(null); // API
Enter fullscreen mode Exit fullscreen mode
  • Atribuindo um objeto a uma constante.
const book = {
  title: "Clean Code",
  author: "Robert C Martin",
  pages: 464,
  language: "English",
  available: true,
};
Enter fullscreen mode Exit fullscreen mode
  • Shorthand notation, quando o nome de uma variável é utilizado com o mesmo nome da chave, utiliza se apenas o nome da variável.
const book = { title, author, pages, language, available };
Enter fullscreen mode Exit fullscreen mode
  • É possível computar chaves em tempo de execução.
const key1 = "title";
book[key1] = "other title";
Enter fullscreen mode Exit fullscreen mode
  • Na criação de chaves com nomes composto é necessário utilizar aspas.
const person = {
  //name-sobrenome: "Jorge Nascimento",  -> gera erro na chave
  "nome-sobrenome": "Jorge Nascimento",
};
Enter fullscreen mode Exit fullscreen mode
  • Além do notação literal , é possível atribuir propriedades aos objetos por meio da usa referência.
const car = {};
car.marca = "Ferrari";
car.ano = "2020";
car.modelo = "Spider";
Enter fullscreen mode Exit fullscreen mode
  • Propriedades consultadas por meio de sua referência.
car.modelo; // => "Spider"
Enter fullscreen mode Exit fullscreen mode
  • É possível consultar uma determinada chave por meio do operador in.
"modelo" in car; // => true
Enter fullscreen mode Exit fullscreen mode
  • As propriedades de um objeto podem ser apagadas por meio do operador delete;
delete car.ano;
Enter fullscreen mode Exit fullscreen mode
  • Iterando objeto com o for in
for (let key in car) {
  console.log(car[key]); // iterando sobre as chaves do objeto
}
Enter fullscreen mode Exit fullscreen mode
  • Criando um cópia do objeto car.
const car2 = {};

for (let key in car) {
  car2[key] = car[key];
}
Enter fullscreen mode Exit fullscreen mode
  • A comparação dos objetos é feita por meio de sua referência , assim, ainda que dois objetos tenham exatamente as mesmas propriedades eles serão considerados diferentes.
const book = {
  title: "JavaScript",
  author: "Nascimento",
};

const book2 = {
  title: "JavaScript",
  author: "Nascimento",
};

book === book2; // => false
Enter fullscreen mode Exit fullscreen mode
  • Um das formas para comparar os objetos é analisando cada uma das propriedades por meio da comparação das chaves e valores.
let equal = true;

for (let key in book) {
  if (book[key] !== book2[key]) equal = false;
}

for (let key in book2) {
  if (book[key] !== book2[key]) equal = false;
}
Enter fullscreen mode Exit fullscreen mode

Para garantir que um objeto é igual ao outro é necessário verificar seus protótipos.

  • Herança - O principal objetivo de herança é permitir o reuso de código por meio do compartilhamento de propriedades entre objetos, evitando duplicação.

    • Na linguagem Javascript a herança é realizada entre objetos e não classes.
    • A propriedade proto é uma referência para o prototipo do objeto.
const functionalLanguage = {
  paradigm: "Functional",
};

const scheme = {
  name: "Scheme",
  year: 1975,
  // paradigm: "Functional" ,    - propriedade que se repete.
  __proto__: functionalLanguage,
};

const javascript = {
  name: "Javascript",
  year: 1995,
  // paradigm: "Functional"
  __proto__: functionalLanguage,
};

javascript.paradigm; // => Functional
Enter fullscreen mode Exit fullscreen mode
  • Quando a propriedade não é encontrada no objeto atual esse sera buscada na sua cadeia de protótipos, chegando até object que tem proto null.

O método hasOwnProperty pode ser utilizado para determinar se uma propriedade pertence ao objeto.

for (let key in scheme) {
  console.log(key, scheme.hasOwnProperty(key));
}
Enter fullscreen mode Exit fullscreen mode
  • Os métodos Object.setPrototypeOf e Object.getPrototypeOf permite setar ou retornar prototipo de um objeto.
// seta prototipo através da API do Object
Object.setPrototypeOf(objeto, prototipo);

// Retorna o seu prototipo
Object.getPrototypeOf(objeto);
Enter fullscreen mode Exit fullscreen mode
  • Com o método Object.create é possível criar um objeto passando seu protótipo como parâmetro.
const scheme = Object.create(functionalLanguage);
scheme.name = "Scheme";
scheme.year = 1975;
Enter fullscreen mode Exit fullscreen mode

Sem prototipo o objeto perde algumas operações importantes ( método como hasOwnProperty)

  • Vamos conhecer os métodos da Object API.
  • - O método Object.assign faz a cópia das propriedades dos objetos passados por parâmetro para o objeto alvo, que é retornado.
const javascript = Object.create({});

Object.assign(
  javascript,
  {
    name: "JavaScript",
    year: 1995,
    paradigm: "OO and Functional",
  },
  {
    author: "Brendan Eich",
    influenceBy: "Java, Scheme and Self",
  }
);
Enter fullscreen mode Exit fullscreen mode
  • - O método Object.keys retorna um array com as chaves do objeto informado.
Object.keys(javascript); // ==> [ 'name', 'year', 'paradigm', 'author', 'influenceBy' ]
Enter fullscreen mode Exit fullscreen mode
  • - O método Object.value retorna um array os valores das propriedades.
Object.values(javascript); // => [ 'JavaScript', 1995,'OO and Functional', 'Brendan Eich','Java, Scheme and Self' ]
Enter fullscreen mode Exit fullscreen mode
  • - O método Object.entries retorna um array de arrays onde cada posição do array retornado possui o par chave e valor do objeto passado.
Object.entries(javascript); // ==> [ [ 'name', 'JavaScript' ], [ 'year', 1995 ],  [ 'paradigm', 'OO and Functional' ],[ 'author', 'Brendan Eich' ],[ 'influenceBy', 'Java, Scheme and Self' ] ]
Enter fullscreen mode Exit fullscreen mode
  • - O método Object.is compara dois objetos, considerando os tipos de dados, de forma similar ao operador === ( comparação de referência )
Object.is(javascript, javascript); // ==> true
Enter fullscreen mode Exit fullscreen mode
  • - O método Object.defineProperty define uma nova propriedade diretamente em um objeto, ou modifica uma propriedade já existente em um objeto, e retorna o objeto.

Na definição dessa propriedade essa pode ter configurações conforme abaixo:

configurable - Permite que uma determinada propriedade seja apagada.

enumerable - permite que uma determinada propriedade seja enumerada ( exibida ).

value - Define o valor de uma determinada propriedade.

writable - Permite que uma determinada propriedade tenha seu valor modificado

const JavaScript = {};

Object.defineProperty(JavaScript, "name", {
  value: "JavaScript",
  enumerable: true,
  writable: true,
  configurable: true,
});
Enter fullscreen mode Exit fullscreen mode

Caso apenas o value seja especificada as demais são consideradas falsa (enumerable | writable | configurable)

  • - O método Object.preventExtensions impede que o objeto tenha novas propriedades, mas permite modificar ou remover as propriedades existentes.
Object.preventExtensions(JavaScript);
Object.isExtensible(JavaScript); // => false
Enter fullscreen mode Exit fullscreen mode
  • - O método Object.seal impede que o objeto tenha novas propriedades ou apague propriedades existentes, mas permite modificar propriedades existentes.
Object.seal(JavaScript);
Object.isSealed(JavaScript); // => true
Enter fullscreen mode Exit fullscreen mode
  • - O método Object.freeze impede que o objeto tenha novas propriedades apague ou modifique propriedades existentes.
Object.freeze(JavaScript);
Object.isFrozen(JavaScript); // => true
Enter fullscreen mode Exit fullscreen mode

RegExp

As expressões regulares são estruturas formadas por uma sequência de caracteres que especificam um padrão formal que servem para validar, extrair ou mesmo substituir caracteres dentro de um string.

let regExp = /john@gmail.com/ || new RegExp(/john@gmail.com/);
Enter fullscreen mode Exit fullscreen mode
  • O método test verifica se a string passada por parâmetro possui o padrão da regexp, retornando um booleano.
let result = regExp.test("john@gmail.com"); // => true - padrão identificado
Enter fullscreen mode Exit fullscreen mode
  • O método exec possui um retorno com mais informações ele retorna um array com index onde foi encontrado o padrão e input analisado, grupos.
regExp.exec("john@gmail.com");

/*[ 'john@gmail.com',
  index: 0,
  input: 'john@gmail.com',
  groups: undefined ] */
Enter fullscreen mode Exit fullscreen mode

Documentação: RegExp

Function

Uma função é um objeto que contém código executável. Assim como o programa em si, uma função é composta por uma sequência de instruções chamada corpo da função. Valores podem ser passados para uma função e ela vai retornar um valor.

Na linguagem JavaScript, as funções são de primeira classe, ou seja, podem ser atribuída a uma variável, passadas por parâmetro ou serem retornada de uma outra função.

  • function declaration forma padrão de declara com a palavra reservado function.
function sum(a, b) {
  return a + b;
}
Enter fullscreen mode Exit fullscreen mode

Na function declaration a mesma é içada para o inicio do contexto de execução sendo assim ela pode ser chamada antes de declarada.

  • function expression declaração de função atribuída a uma variável.
const sum = function (a, b) {
  return a + b;
};
Enter fullscreen mode Exit fullscreen mode
  • Função que retorna outra função - para ter acesso a a função interna é necessário realizar uma dupla invocação calculator()()
const calculator = function (fn) {
  return function (a, b) {
    return fn(a, b);
  };
};

calculator(sum)(2, 2); // => 4
Enter fullscreen mode Exit fullscreen mode
  • Definindo valores padrão para o parâmetro, no caso desse parâmetro não for passado ele irá assumir o default.
const subtract = function (a = 0, b = 2) {
  return a - b;
};

subtract(5); // => 3
Enter fullscreen mode Exit fullscreen mode
  • arguments é uma variável implícita que é possível acessar os parâmetros da função invocada, essa retorna um objeto com índice e valor passado.
const argsFunction = function () {
  return arguments;
};

argsFunction(1, 2, 3, 4, 5); // => { '0': 1, '1': 2, '2': 3, '3': 4, '4': 5 }
Enter fullscreen mode Exit fullscreen mode
  • Também é possível acessar os parâmetros da função invocada por meio do rest paramenter, esse retorna um array com os parâmetros passados, deve ser usado como último da lista de parâmetros.
const restFunction = function (...numbers) {
  return numbers;
};
restFunction(1, 2, 3, 4, 5); // => [ 1, 2, 3, 4, 5 ]
Enter fullscreen mode Exit fullscreen mode
  • constructor functions ( Funções Construtoras ) servem como molde para a criação de objetos, essas precisam ser instanciadas pelo operador new. O this dentro delas se referencia ao objeto criado a partir delas.

New permite que crie objetos tanto das funções construtoras quanto das classes.

const Person = function (name, city, year) {
  this.name = name;
  this.city = city;
  this.year = year;
};
Enter fullscreen mode Exit fullscreen mode
  • Toda função tem uma propriedade chamada prototype, que é vinculada ao __proto__ do objeto criado pelo operador new.
Person.prototype.getAge = function () {
  return new Date().getFullYear() - this.year;
};

const newPerson = new Person("Bill Gates", "Seattle", 1955);
Enter fullscreen mode Exit fullscreen mode
  • factory function ( Funções Fábricas ) são semelhantes às funções construtoras / funções de classe, mas em vez de usar new para criar um objeto, as funções de fábrica simplesmente criam um objeto e o retorna.
// Reaproveitando propriedades em comuns.
const personPrototype = {
  getAge() {
    return new Date().getFullYear() - this.year;
  },
};

const createPerson = function (name, city, year) {
  const person = {
    name,
    city,
    year,
  };
  Object.setPrototypeOf(person, personPrototype);
  return person;
};

const createPerson = createPerson("Linus Torvalds", "Helsinki", 1965);
Enter fullscreen mode Exit fullscreen mode
  • Call e Apply - Essas funções são capaz de alterar o valor this. Por padrão, o primeiro parâmetro que recebe é o valor do this e o demais parâmetros são da função que invoca o método.
const circle = {
  radius: 10,
};

function calculateArea(fn) {
  return fn(Math.PI * Math.pow(this.radius, 2));
}

calculateArea.call(circle, Math.round); // => 315
calculateArea.apply(circle, [Math.ceil]); // => 315
Enter fullscreen mode Exit fullscreen mode

A diferença entre call e apply é que no apply os parâmetros são passando como um array.

  • Bind funciona de uma maneira diferente do call e do apply, ao invés de executar uma função, este retorna uma nova função. O seu primeiro parâmetro continua recebendo o valor que será atribuído ao this e os demais argumentos serão os parâmetros que definirão os valores atribuídos da primeira função.
const calculateAreaForCircle = calculateArea.bind(circle);
calculateAreaForCircle(Math.round); // => 315
Enter fullscreen mode Exit fullscreen mode

Arrow Function

As Arrow Functions tem uma abordagem mais simples e direta para escrever uma função e podem melhorar a legibilidade do código em diversas situações.

  • Com a arrow function retiramos a palavra function e apos os parêntese se utiliza o =>, podendo também retirar as chaves { } que nesse caso será realizado um retorno implícito sem o uso da palavra return .
const sum = (a, b) => a + b;
// {
//   return a + b;
// };

const subtract = (a, b) => a - b;
// {
//   return a - b;
// }
Enter fullscreen mode Exit fullscreen mode
  • Um exemplo com função que retorna outra função.
const calculate = (fn) => (a, b) => fn(a, b);
// (fn) =>{
//   return (a, b) =>{
//     return fn(a, b);
//   };
// };

calculate(sum)(2, 3); // ==> 5
Enter fullscreen mode Exit fullscreen mode

Cuidado com a legibilidade do código.

A Arrow functions nos permite também abrir mão dos parênteses nos casos onde é utilizado apenas um parâmetro.

  • Arrow functions não possuem as suas próprias variáveis this e arguments.
// this
const person = {
  name: "James Gosling",
  city: "Alberta",
  year: 1955,
  getAge: () => {
    return new Date().getFullYear - this.year; // => NaN
  },
};
Enter fullscreen mode Exit fullscreen mode
// arguments
const sum = () => {
  let total = 0;

  for (let argument in arguments) {
    total += arguments[argument];
  }
  return total;
};

sum(2, 3, 4, 5); // error
Enter fullscreen mode Exit fullscreen mode

Arrays

Um Array é um objeto similar a uma lista que armazena diferentes tipos de dados e oferece operações para acessar e manipular suas propriedades.

  • Podemos criar um array através da função construtora ou iniciando com [ ]
const languages = new Array("Python", "C", "Java");
const languages = ["Python", "C", "Java"];
Enter fullscreen mode Exit fullscreen mode
  • É possível iniciar um array passando apenas um Number para a função construtora.
const numbers = new Array(10);
console.log(numbers); // => [ <10 empty items> ]
Enter fullscreen mode Exit fullscreen mode
  • A propriedade length indica a quantidade de elementos que existem dentro do array. Os elementos vazios sao considerados no length, caso o array tenha elementos com indices com espaços com elementos vazios esses são contabilizados no length)
console.log(numbers.length); // => 10
Enter fullscreen mode Exit fullscreen mode

AccessorAPI

Os accessor methods quando invocados retornam informações especificas sobre o array.

  • indexOf: Retorna a posição do primeiro elemento encontrado, caso não exista o elemento no array é retornado -1.
const languages = ["Python", "C", "Java"];
console.log(languages.indexOf("Python")); // => 0
Enter fullscreen mode Exit fullscreen mode
  • lastIndexOf: Retorna a posição do último elemento encontrado, caso tenha mais de um elemento igual no array.
console.log(languages.lastIndexOf("Python")); // => 0
Enter fullscreen mode Exit fullscreen mode
  • includes: Retorna true se o elemento existir no array.
console.log(languages.includes("JavaScript")); // => false
Enter fullscreen mode Exit fullscreen mode
  • concat: Retorna um novo array resultante da concatenação de um ou mais array.

Arrays não são alterados, apenas é retornado um novo array com a concatenação.

const veiculos = ["HB20", "Opalla", "Agile"];
const motocicletas = ["Honda CB", "Kawasaki Ninja"];

console.log(veiculos.concat(motocicletas)); // => [ 'HB20', 'Opalla', 'Agile', 'Honda CB', 'Kawasaki Ninja' ]
Enter fullscreen mode Exit fullscreen mode
  • slice: Retorna partes de um determinado array de acordo com a posição inicio e fim, posição fim é o valor -1, caso passe apenas o valor inicial irá retornar desse ponto até o final.
console.log(veiculos.slice(1, 3)); // => ['Opalla,'Agile']
Enter fullscreen mode Exit fullscreen mode
  • join: Converte o array para uma String, juntando os elementos com base em um separador.
const joinArray = veiculos.join("-");
console.log(joinArray); // => HB20-Opalla-Agile
Enter fullscreen mode Exit fullscreen mode

MutatorAPI

Os mutator methods quando invocados modificam o array.

  • push: Adiciona um elemento no final e retorna o novo length do array.
const languages = ["Python", "C", "Java"];

languages.push("C#");
console.log(languages); // ==> [ 'Python', 'C', 'Java', 'C#' ]
Enter fullscreen mode Exit fullscreen mode
  • pop: Remove um elemento do final e o retorna.
console.log(languages); // ==> [ 'Python', 'C', 'Java' ]
Enter fullscreen mode Exit fullscreen mode
  • unshift: Adiciona um elemento no inicio e retorna o novo length.
languages.unshift("JavaScript");
console.log(languages); // ==> [ 'JavaScript', 'Python', 'C', 'Java' ]
Enter fullscreen mode Exit fullscreen mode
  • shift: Remove um elemento no inicio e o retorna.
languages.shift();
console.log(languages); // ==> ["Python", "C", "Java"]
Enter fullscreen mode Exit fullscreen mode
  • splice: Remove, Substitui ou Adiciona um ou mais elementos em uma determinada posição e retorna um novo array com os elementos removidos.
  • - splice(posição do elemento a ser removido, quantidade de elementos a serem removido a parti daquele ponto)
languages.splice(1, 1); // Remove C e retorna ["C"];
console.log(languages); // ==> [ 'Python', 'Java' ]
Enter fullscreen mode Exit fullscreen mode
  • Inserindo elementos com splice, quando não for remover no segundo parâmetro utiliza se 0.
languages.splice(1, 0, "C++", "C#"); // Partindo da posição 1 é inserido os elementos C++ e C#
console.log(languages); // ==> [ 'Python', 'C++', 'C#', 'Java' ]
Enter fullscreen mode Exit fullscreen mode
  • Removendo os 2 elementos inseridos e colocando novamente o C.
languages.splice(1, 2, "C"); // Retorna ["C++", C#]
console.log(languages); // ==> ["Python", "C", "Java"]
Enter fullscreen mode Exit fullscreen mode
  • sort: Ordena os elementos de acordo com a função de ordenação.

    • Sort recebe uma função com parâmetros a e b, sendo seu retorno a - b pra ordenação crescente, b - a inverte a ordem.
const languagesObj = [
  {
    name: "Python",
    year: 1991,
  },
  {
    name: "C",
    year: 1972,
  },
  {
    name: "Java",
    year: 1995,
  },
];

languagesObj.sort(function (a, b) {
  return a.year - b.year;

  // return (a.name <= b.name) ? -1 : 1; // Para ordenação por ordem alfabética
  // return a.name.localeCompare(b.name);
});

console.log(languagesObj);
/*[ { name: 'C', year: 1972 },
    { name: 'Python', year: 1991 },
    { name: 'Java', year: 1995 } ] */
Enter fullscreen mode Exit fullscreen mode
  • reverse: Inverte a ordem dos elementos.
languages.reverse();
console.log(languages); // => ["Java", "C", "Python"]
Enter fullscreen mode Exit fullscreen mode
  • fill: Preenche os elementos de acordo com a posição de inicio e fim.
  • - fill(value, pos. inicial,pos. final) - preenche com o value o intervalo passado no parâmetro.
languages.fill("JavaScript", 0, 2);
console.log(languages); // ==> [ 'JavaScript', 'JavaScript', 'Python' ]
Enter fullscreen mode Exit fullscreen mode

IterationAPI

Os iteration methods quando invocados iteram sobre os elementos do array.

  • forEach: Executa a função passada por parâmetro para cada elemento.
const frameworks = ["VueJS", "NextJS", "AngularJS"];
frameworks.forEach((framework) => console.log(framework)); // ==> "VueJS", "NextJS", "AngularJS"
Enter fullscreen mode Exit fullscreen mode
  • filter: Retorna um novo array contendo somente os elementos que retornaram true na condição da função passada por parâmetro.
const frameworks = [
  {
    name: "AngularJS",
    contributors: 1548,
  },
  {
    name: "EmberJS",
    contributors: 746,
  },
  {
    name: "VueJS",
    contributors: 240,
  },
];

const resultFilter = frameworks.filter(
  (framework) => framework.contributors < 1000
);

console.log(resultFilter);
// =>
/* [ { name: 'EmberJS', contributors: 746 },
     { name: 'VueJS', contributors: 240 } ]  */
Enter fullscreen mode Exit fullscreen mode
  • find: Retorna o primeiro elemento que retornou true na condição da função passada por parâmetro.
const resultFind = frameworks.find((framework) => framework.name === "VueJS");

console.log(resultFind); // ==> { name: 'VueJS', contributors: 240 }
Enter fullscreen mode Exit fullscreen mode
  • some: Retorna true se um ou mais elementos retornaram true na condição da função passada por parâmetro.
const resultSome = frameworks.some(
  (framework) => framework.name === "AngularJS"
);

console.log(resultSome); // ==> true
Enter fullscreen mode Exit fullscreen mode
  • every: Retorna true se todos elementos retornaram true na condição da função passada por parâmetro.
const resultEvery = frameworks.every(
  (framework) => framework.contributors > 1000
);

console.log(resultEvery); // ==> false
Enter fullscreen mode Exit fullscreen mode
  • map: Retorna um novo array com base no retorno da função passada por parâmetro.
const resultMap = frameworks.map((framework) => framework.name);

console.log(resultMap); // ==> ["AngulaJS", "EmberJS", "VueJS"]
Enter fullscreen mode Exit fullscreen mode
  • reduce: Recebe uma função de callback que possui 2 parâmetros principais o acc ( accumulator ) e o currentItem ( item atual do array iterado), o segundo parâmetro é o tipo de dado que será retornado do reduce.
const resultReduce = frameworks.reduce(function (total, framework) {
  return total + framework.contributors;
}, 0);

console.log(resultReduce); // ==> 2534 ( soma do total de contribuidores )
Enter fullscreen mode Exit fullscreen mode

Math API

Math é um objeto global que contém constantes matemática e métodos para realização de operações envolvendo números.

  • Constantes Matemáticas
Math.E; // => 2.718281828459045
Math.LN10; // => 2.302585092994046
Math.LN2; // => 0.6931471805599453
Math.LOG10E; // => 1.4426950408889634
Math.PI; // => 3.141592653589793
Math.SQRT2; // => 1.4142135623730951
Math.SQRT1_2; // => 0.7071067811865476
Enter fullscreen mode Exit fullscreen mode
  • Operações de arredondamentos

    • abs - converte o sinal de um número para positivo
Math.abs(10); // =>10
Math.abs(-10); // => 10
Enter fullscreen mode Exit fullscreen mode
  • - ceil - Arredonda o número para cima.
Math.ceil(1.1); // => 2
Math.ceil(-1.1); // => -1
Enter fullscreen mode Exit fullscreen mode
  • - floor - Arrendonda o número para baixo.
Math.floor(9.9); // => 9
Math.floor(-9.9); // => 10
Enter fullscreen mode Exit fullscreen mode
  • - round - Arredonda o número para cima se a parte decimal for de 5 a 9 e para baixo se for de 0 a 4;
Math.round(4.5); // => 5
Math.round(-4.5); // => -4
Enter fullscreen mode Exit fullscreen mode
  • - sign - Retorna 1 se o número for positivo e -1 se for negativo.
Math.sign(5); // => 1
Math.sign(-5); // => -1
Enter fullscreen mode Exit fullscreen mode
  • - trunc - Elimine a parte decimal do número ,tornando-o um inteiro.
Math.trunc(2.3); // => 2
Math.trunc(-2.3); // => -2
Enter fullscreen mode Exit fullscreen mode
  • Operações aritméticas / Trigonometria

    • cbrt - Retorna a raiz cúbica do número.
Math.cbrt(8); // => 2
Enter fullscreen mode Exit fullscreen mode
  • - cos - Retorna o cosseno de um ângulo
Math.cos(Math.PI / 3); // => 0.5000000000000001
Enter fullscreen mode Exit fullscreen mode
  • - exp - Retorna ex, onde x é o argumento, e e é a Constante de Euler, a base dos logaritmos naturais
Math.exp(1); // => 2.718281828459045
Enter fullscreen mode Exit fullscreen mode
  • - hypot - Retorna a raiz quadrada dos quadrado dos números.
Math.hypot(3, 4); // => 5
Enter fullscreen mode Exit fullscreen mode
  • - log - Retorna o logaritmo do número em base natural.
Math.log(1); // => 0
Enter fullscreen mode Exit fullscreen mode
  • - pow - Retorna o número elevado a um determinado expoente.
Math.pow(2, 10); // => 1024
Enter fullscreen mode Exit fullscreen mode
  • - sin - Retorna o seno de um ângulo.
Math.sin(Math.PI / 2); // => 1
Enter fullscreen mode Exit fullscreen mode
  • - sqrt - Retorna a raiz quadrada do número.
Math.sqrt(4); // => 2
Enter fullscreen mode Exit fullscreen mode
  • - tan - Retorna a tangente de um ângulo.
Math.tan(Math.PI / 4); // => 0.9
Enter fullscreen mode Exit fullscreen mode
  • Mínimo, Máximo e Random.

    • min - Retorna o menor número passado por parâmentro.
Math.min(1, 2, 3, 4, 5, 6); // => 1
Enter fullscreen mode Exit fullscreen mode
  • - max - Retorna o maior número passado por parâmetro.
Math.max(1, 2, 3, 4, 5, 6); // => 6
Enter fullscreen mode Exit fullscreen mode
  • - random - Retorna um número randômico entre 0 e 1, não incluindo o 1;
Math.floor(Math.random() * 1000);
Enter fullscreen mode Exit fullscreen mode

Por hoje é isso pessoal, conseguimos ter uma boa noção dos principais tipos objetos e como manipula-los, nos próximo posts iremos conhecer conceitos como closures e assíncronismo ( Promises ).

Obrigado por ler.

** Exemplos são baseado no curso JavaScript - MasterClass do Rodrigo Branas.



Me paga um ☕ ? | pix: nascimento.dev.io@gmail.com


Este post tem como objetivo ajudar quem esta começando no aprendizado das tecnologias web, além de servir como incentivo no meus estudos e a criar outros posts pra fixação do aprendizado.


Me Sigam :)

Linkedin | Github

Top comments (0)