· 5 years ago · Feb 21, 2021, 04:12 PM
1// Por Marcos Souza 21/02/2021
2// == criacao e instanciacao de classe ==
3class Api {
4 constructor(baseURL) {
5 this.baseURL = baseURL;
6 }
7
8 getBaseURL = () => this.baseURL;
9}
10
11const api = new Api("https://github.com/");
12
13console.log(api.getBaseURL());
14
15// == map ==
16// aplica uma função para modificar os elementos
17// e retorna um novo array sem modificar o original
18let titles = ["Hello", "World", "Tutorial"];
19
20console.log(titles.map((title) => `<h1>${title}</h1>`));
21
22// == filter ==
23// aplica uma função para filtar os elementos
24// e retorna um array apenas com elementos
25// que passaram no teste da função
26let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
27
28even_numbers = numbers.filter((element) => element % 2 === 0);
29console.log(even_numbers);
30
31odd_numbers = numbers.filter((element) => element % 2 === 1);
32console.log(odd_numbers);
33
34const users = [
35 {
36 name: "Marcos",
37 country: "Brazil",
38 },
39 {
40 name: "Souza",
41 country: "Brazil",
42 },
43 {
44 name: "John",
45 country: "United States",
46 },
47];
48
49const brazilians = users.filter((element) => element.country === "Brazil");
50console.log(brazilians);
51
52// == reduce ==
53// executa uma função em cada elemento
54// com objetivo de retornar um único valor
55const nums = [1, 2, 3, 4, 5];
56const even_sums = nums
57 .filter((element) => element % 2 === 0)
58 .reduce((total, current) => total + current);
59
60console.log(even_sums);
61
62// == find ==
63// retorna o primeiro elemento que passar
64// pela função
65const users_list = [
66 { id: 1, name: "Marcos" },
67 { id: 2, name: "Souza" },
68 { id: 3, name: "Linus" },
69];
70
71console.log(users_list.find(user => user.id === 1))
72
73// == var, let e const ==
74
75
76// var altera a variavel fora de seu escopo
77const test_var = () => {
78 var var1 = 1;
79
80 if (0 === 0) {
81 var var1 = 2 // agora a variável fora desse escopo terá também o valor de 2
82 console.log(var1)
83 }
84
85 console.log(var1)
86}
87
88test_var()
89
90// exemplo com const
91const test_const = () => {
92 const const1 = 1;
93
94 if (0 === 0) {
95 const const1 = 2; // não interfere em const fora do escopo
96 console.log(const1);
97 }
98
99 console.log(const1);
100};
101
102test_const()
103
104
105// let
106// cria uma variável onde seu valor pode ser alterado
107let let1 = 0
108let1 = 5 // atribui um novo valor
109console.log(let1)
110
111// const
112// não permite alterar o valor da variável
113// permite apenas utilizar métodos do seu valor
114const const1 = 0;
115
116// const1 = 5; // gera erro: TypeError: Assignment to constant variable.
117
118
119// == object destructing ==
120// extrai/atribui dados de arrays e objetos
121// em variáveis diferentes
122
123// em caso de objetos, se o nome da variável for
124// diferente do nome da chave, não irá atribuir um valor
125// e o valor será undefined
126const my_obj1 = { name: "Marcos", age: 24 };
127const { age1, name1 } = my_obj1; // não funciona
128console.log(age1, name1)
129
130const my_obj = { name: "Marcos", age: 24 }
131const { name, age } = my_obj;
132console.log(name, age);
133
134
135// no caso de array, irá atribuir de acordo com a ordem
136// se usar ... irá criar um array contendo o resto
137// dos valores
138const numbers_arr = [1, 2, 3, 4, 5];
139const [one, two, ...rest] = numbers_arr; // rest terá o valor de [ 3, 4, 5 ]
140console.log(one, two, rest)
141
142
143// merge de objetos com destructuring
144// caso a key já exista, o próximo objeto irá substituir o valor
145// da key
146const some_info = { name: "Marcos", age: 5 }
147const some_info_2 = { country: "Brazil", age: 24 } // age: 5 será substituido
148
149const me = { ...some_info, ...some_info_2 }
150console.log(me)