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);




24/07/2020

Exercício Série de Fourier em Tempo Discreto

2) Use a Equação de análise para calcular os valores numéricos de um período dos coeficientes da série de Fourier do sinal periódico 







Resolução:



















3) Seja x[n] um sinal periódico real e ímpar com período N = 7 e coeficientes de Fourier ak . Dado que
a15 = j, a16 = 2j, a17 = 3j , determine os valores de a0 , a–1 , a–2 e a–3 .

Resolução:




23/07/2020

Middlewares 01 em JavaScript


const passo1 = (ctxnext=>{
    ctx.valor1 = 'mid1'//adc dentro desse objeto
    next()
}

const passo2 = (ctxnext=>{
    ctx.valor2 = 'mid2'
    next()
}

const passo3 = ctx => ctx.valor3 = 'mid3'

const exec = (ctx, ...middlewares=>{
    const execPasso = indice =>{//executa o índice 
//se middlwares == true e índice middlw menor que o comprimento passado
        middlewares && indice < middlewares.length &&
            middlewares[indice](ctx, () => execPasso(indice +1))
    }
    execPasso(0)//dispara a execução
}

//vai juntar em 1 array
const ctx = {}
exec(ctxpasso1passo2passo3)//forma interativa
console.log(ctx);

//não executa porque o passo passo3 não chama os outros
exec(ctxpasso3passo2passo1)







Palavras chave:

JavaScript Middlewares 01
Прамежкавы JavaScript JavaScript 01
JavaScript Middlewares 01
JavaScriptミドルウェア01
JavaScript Middlewares 01

Sinais periódicos em Série de Fourier

3.2)  Um sinais periódico de tempo discreto x[n] tem valor real e período fundamental N = 5. Os coeficientes da série de Fourier diferentes de zero de x[n] são:





Expresse x[n] na forma:






Resolução 1:

22/07/2020

Escrevendo em arquivo com JavaScript

const fs = require('fs')

const produto = {
    nome: 'Celular',
    preco: 1249.99,
    desconto: 0.15
}

fs.writeFile(__dirname + '/arquivoGerado.json'JSON.stringify(produto), err => {
    console.log(err || 'Arquivo salvo!')
})







é gerado o arquivo: arquivoGerado.json com os dados de produto

Lendo arquivo json em JavaScript

Arquivo: arquivo.json

{
    "db": {
        "host""localhost",
        "port"5432,
        "user""usuario",
        "pass""123456"
    }
}

Arquivo: ArquivoLeitura.js

const fs = require('fs')

const caminho = __dirname + '/arquivo.json'//nome do arquivo

// sincrono...
const conteudo = fs.readFileSync(caminho'utf-8')
console.log(conteudo)
console.log();//pula 1 linha

// assincrono...
fs.readFile(caminho'utf-8', (err, conteudo=> {
    const config = JSON.parse(conteudo)
    console.log(`${config.db.host} : ${config.db.port}`)
})

const config = require('./arquivo.json')
console.log(config.db)
console.log();//pula 1 linha

fs.readdir(__dirname, (err, arquivos=> {
    console.log('Conteúdo da pasta...')
    console.log(arquivos)
})


























Palavras chave

קורא קובץ json ב- JavaScript
Читање датотека json во JavaScript
JavaScriptでのJSONファイルの読み取り
Čtení souboru json v JavaScriptu
Чтение файла JSON в JavaScript
Läser json-fil i JavaScript
Чытанне файла json на JavaScript
Reading json file in JavaScript

21/07/2020

Passando parâmetros com node em JavaScript

Arquivo: PassandoParametro.js

module.exports = function(...nomes){
    return nomes.map(nome => `Boa semana ${nome} !`)
}


Arquivo: PassandoCliente.js
//Exportando para uma função e adicionando
const saudacoes = require('./PassandoParametro')('Ana''Lucas''Karolayne')
console.log(saudacoes);



This em JavaScript

console.log(this === global);
console.log(this === module);
console.log(this === module.exports);
console.log(this === exports);//fora de 1 função o this aponta para exports

function logThis() {
    console.log('Dentro de uma uma função ...');
    //this não aponta para exports
    console.log(this === exports);//this é extritamente igual a exports ?
    console.log(this === module.exports);//this é extri... 
    console.log(this === global);
    console.log(this == global);
}
logThis()


Objeto global com node em JavaScript

Arquivo: Global.js

//console.log();
global.MinhaApp1 = {
    saudacao(){
        return 'Estou em todos lugares !'
    },
    nome'Sistema Legal'
}

global.MinhaApp2 = Object.freeze[{//Objeto está congelado
    saudacao2() {
        return 'Estou congelado !'
    },
    nome2"Sistema congelado em JavaScript !"
}]

Arquivo: GlobalCliente.js

require('./Global')
console.log(MinhaApp1.saudacao());

//Método 2
MinhaApp1.nome = 'Letícia'
console.log(MinhaApp1.nome);

//acessar objeto congelado, forma errada de acessar
//MinhaApp2.nome2 = 'Camila'//Erro: está congelado
//console.log(MinhaApp2.nome2); Erro








Palavras chave:

Globales Objekt mit Knoten in JavaScript
JavaScriptのノードを持つグローバルオブジェクト
გლობალური ობიექტი კვანძით JavaScript- ში
జావాస్క్రిప్ట్‌లో నోడ్‌తో గ్లోబల్ ఆబ్జెక్ట్
อ็อบเจ็กต์โกลบอลที่มีโหนดใน JavaScript
Ughjettu globale cù node in JavaScript
JavaScript-тегі түйінді жаһандық нысан
Globalt objekt med knude i JavaScript

Módulo exports em JavaScript

Arquivo: Arquivo1.js

console.log(module.exports);
console.log(module.exports === this);//está exportando ?
console.log(module.exports === exports);

this.a = 1
exports.b = 2
module.exports.c = 3

exports = null
console.log(module.exports);

exports = {
    nome'Bem vindo ao JavaScript',
}

console.log(module.exports);

module.exports = {
    publico: true
}


Arquivo: exportar.js
const exportar = require('./Arquivo1')//importando arquivo
console.log(exportar);











Palavras chave:

Mòdul d'exportacions de JavaScript
מודול יצוא JavaScript
Modulo di esportazione JavaScript
โมดูลส่งออก JavaScript
ജാവാസ്ക്രിപ്റ്റ് എക്‌സ്‌പോർട്ട് മൊഡ്യൂൾ
Module d'exportations JavaScript
Mòdul d'exportacions de JavaScript
JavaScript ექსპორტის მოდული
JavaScriptエクスポートモジュール
JavaScript-Exportmodul

20/07/2020

Modulo em JavaScript

Arquivo: ModuloA.js
//Exportar algo para ser usando em outro
this.ola = 'Olá Mundo !'
exports.bemVindo = 'Bem vindo em JavaScript !'
module.exports.ateLogo = 'Até ao próximo exemplo !'

Arquivo: ModuloB.js
module.exports = { //forma de exportação
    bomDia'Estou no MóduloB, Bom dia',
    boaNoite(){
        return 'Estou no MóduloB, na função boaNoite()'
    }
}

Arquivo: ModuloCliente.js
const moduloA = require('./ModuloA')
const moduloB = require('./ModuloB')

console.log(moduloA.ola);
console.log(moduloA.bemVindo);
console.log(moduloA.ateLogo);

console.log();
console.log(moduloB.bomDia);
console.log(moduloB.boaNoite());
console.log(moduloB);











Palavras chave:

JavaScript模塊
Модуль JavaScript
Modul JavaScript
JavaScript модулу
ЈаваСцрипт модул
وحدة JavaScript
JavaScriptモジュール
JavaScript-module
מודול JavaScript
Mòdul JavaScript

FlatMap em JavaScript

const escola = [{
    nome'Turma M1',
    alunos: [{
        nome'Gustavo',
        nota8.1
    },{
        nome'Ana',
        nota9.3
    }]
},{
    nome'Turma M2',
    alunos: [{
        nome'Rebeca',
        nota8.9
    },{
        nome'Roberto',
        nota7.5
    }]
}]

const getNotaDoAluno = aluno => aluno.nota
const getNotasDaTurma = turma => turma.alunos.map(getNotaDoAluno)

//extrai nota da turma
const notas1 = escola.map(getNotasDaTurma)

console.log(notas1);
console.log([].concat([8.19.3], [8.97.5]));

const notas2 = escola.flatMap(getNotasDaTurma);
console.log(notas2);







Concat em JavaScript

//Concat: Concatena vários arrays
const filhas = ['Daleska''Cibalena']
const filhos = ['Jairo''Gabriel']
const todos = filhas.concat(filhos)
console.log(todos);
const todos1 = filhas.concat(filhos'Henrique')
console.log(todos1);

console.log(todos, filhas, filhos);

console.log(['a''b'].concat([1,2], [3,4], 5, [[6,7]]));




Imperativo Vs Declarativo em JavaScript

const alunos = [
    {nome'João'nota7.3},
    {nome'Maria'nota9.2},
    {nome'Pedro'nota9.8},
    {nome'Gabriele'nota8.7}
]

//Imperativo
let total1 = 0
for(let i = 0; i < alunos.length; i++){
    total1 += alunos[i].nota
}
console.log(total1 / alunos.length);

//declarativo
const getNota = aluno => aluno.nota
const soma = (total, atual=> total + atual

const total2 = alunos.map(getNota).reduce(soma)
console.log(total2 / alunos.length);








Palavras chave:

JavaScript'te Zorunlu ve Beyan
Императивті Vs декларативті JavaScript
Imperatief vs verklarend in JavaScript
JavaScript에서 명령형 대 선언
Imperative Vs Deklaratywny w JavaScript
Privaloma Vs deklaracija „JavaScript“
הצהרת נגד ציווי ב- JavaScript
Імператив Vs Декларація у JavaScript
JavaScript дахь Imperative Vs тунхаглал

Reduce 03 em JavaScript

Reduce de forma manual em JavaScript


//Reduce de forma manual
Array.prototype.reduce2 = function(callback){
    let acumulador = this[0]
    const indiceInicial = valorInicial ? 0 : 1//se tiver setado será 0
    for(let i = 1; i < this.length; i++){
        //atribui no acumulador, o resultado do acumulador passa para acu
        acumulador = callback(acumulador, this[i], i, this)
    }
    return acumulador
}

const soma = (total, valor=> total + valor
const nums = [1,2,3,4,5,6]
console.log(nums.reduce(soma15));//soma 15 + nums
console.log(nums.reduce(soma));