Pesquisar neste blog

26/07/2020

CallBacks Aninhadas em JavaScript

// sem promise...
const http = require('http')

const getTurma = (letracallback=> {
    const url = `http://files.cod3r.com.br/curso-js/turma${letra}.json`
    http.get(urlres => {
        let resultado = ''

        res.on('data'dados => {
            resultado += dados
        })

        res.on('end', () => {
            callback(JSON.parse(resultado))
        })
    })
}
let teste = []
getTurma('A'pessoas1 => {
    console.log(pessoas1);//todos os índices
    console.log('\n',pessoas1[0]);//1° índice
    console.log('\n',pessoas1[0].nome);// somente o nome do 1° índice
})


console.log();
let nomes = []
getTurma('A'alunos => {
    nomes = nomes.concat(alunos.map(a => `A: ${a.nome}`))
    getTurma('B'alunos => {
        nomes = nomes.concat(alunos.map(a => `B: ${a.nome}`))
        console.log(nomes);
        getTurma('C'alunos => {
            nomes = nomes.concat(alunos.map(a => `C: ${a.nome}`))
            console.log(nomes)
        })
    })
})



For of em JavaScript

const { map } = require("lodash");

for (let letra of "Blog "){
    console.log(letra);
}

const assutosEcma = ['Map''Set''Promise']
for (let i in assutosEcma){
    console.log(i);
}
console.log();

for (let assunto of assutosEcma) {
    console.log(assunto);    
}

const assuntosMap = new Map([
    ['Map', {abordado: true}],
    ['Set', {abordado: true}],
    ['Promise', {abordado: false}]
])
console.log();

//chaves e valores do array
for(let assunto of assuntosMap){
    console.log(assunto);
}
console.log();

for(let [chavevalorof assuntosMap){
    console.log(chave);
}
console.log();

//percorrendo somente as chaves
for(let chave of assuntosMap.keys()){
    console.log(chave);
}
console.log();

//desestruturando 1 array com chave e  valor
for(let [chvlof assuntosMap.entries()){
    console.log(chvl);
}
console.log();

const s = new Set(['a''b''c'])
for(let letra of s){
    console.log(letra);
}







Set em JavaScript

//Set não é um conjunto indexada e que não aceita repetição
const times = new Set()
times.add('Vasco')
times.add('São Pauo').add('Palmeiras').add('Corinthians')
times.add('Flamengo')
times.add('Vasco')//não vai adicionar, elemento repetido

console.log(times);
console.log(times.size);//tamanho
console.log(times.has('vasco'));//false
console.log(times.has('Vasco'));//true
times.delete('Flamento')//deletando Flamento
console.log(times.has('Flamento'));

//só vai adicionar 1 Lucas
const nomes = ['Raquel''Lucas''Julia''Lucas']
const nomesSet = new Set(nomes)
console.log(nomesSet);




Tagged Template 02 em JavaScript


function real(partes, ...valores) {
    const resultado = []
    valores.forEach((valorindice=>{
        valor = isNaN(valor) ? valor : `R$${valor.toFixed(2)}`
        resultado.push(partes[indice], valor)
    })
    return resultado.join('')
}

const preco = 29.99
const precoParcela = 11
console.log(real `1x de ${preco} ou 3x de ${precoParcela}.`);



Rest/Spread em JavaScript

//Operador ... rest(juntar)/spread(espalhar)
//usar rest com parâmetro de função

//usar spread com objeto
const funcioario = {
    nome: 'Henrique',
    salario: 12500.55
}

//cópia
const clone = {//espalha os elementos
    ativo: true,
    ...funcioario
}
console.log(clone);

const grupoA = ['João''Pedro''Glória']
//espalhando os atributos de 1 array dentro de outro array
const grupoFinal = ['Maria', ...grupoA'Rafael']
console.log(grupoFinal);



Revisão 03 em JavaScript

//ESB: Object.values/Object.entries
const obj = {a: 1b: 2c: 3}
console.log(Object.values(obj));
console.log(Object.keys(obj));
console.log(obj);
console.log(Object.keys(obj).entries(obj));
console.log(Object.entries(obj));//1 array de arrays com chave e valor

//Melhorias na Notação Literal
const nome = 'Carla'
const pessoa = {
    nome
    ola(){
        return 'Bem vindo ao JavaScript !'
    }
}
console.log(pessoa.nome' : ',pessoa.ola());

//Class
class Avo{}
class Pai extends Avo{
    falar(){
        return 'Olá eu sou herança !'
    }
}
console.log(new Cachorro().falar());


Revisão 02 em JavaScript

const { isNull } = require("lodash");

//Arrow Function
const soma = (ab=> a + b//retorna a + b
console.log(soma,'Soma = ',soma(57));

//Arrow Function(this)
//this esta associado ao local onde a função foi escrita
const lexico1 = () => console.log(this === exports);//this sempre apontará para exports
const lexico2 = lexico1.bind({})//forçando 1 barra, mas não irá funcionar
lexico1()
lexico2()

//parametro default
function log(texto = 'Node') {
    console.log(texto);
}

log();
log('Olá ! Bem Vindo ao JavaScript. ');
log(null);
log(isNull)

//Operador rest
function total(...numeros) {
    let total = 0
    numeros.forEach(n => total += n);
    return total
}

console.log('Total = '+total(2345));


Revisão 01 em JavaScript

{
    var a = 2
    let = 3
}
console.log(a);
//console.log(b);//não consegue acessar por estar reservada

//Template String
const produto = 'iPad'
console.log(`${produto} é muito caro !`);

//Destructuring
const [lek, ...tras] = "BLOG engenhariaCotidiana"
console.log(lek);
console.log(tras,'\n');

const[x, , y] = [1,23]
console.log(x,y);

//Desestruturar usa chaves
const {idadeinome} = {nome: 'Ana'idade: 9}
console.log(inome);