Pesquisar neste blog
29/07/2020
Async / Await em JavaScript
// sem promise...
const http = require('http');
const { reject } = require('lodash');
const getTurma = (letra, callback) => {
const url = `http://files.cod3r.com.br/curso-js/turma${letra}.json`
return new Promise((resolve, reject) =>{
http.get(url, res =>{
let resultado = ''
res.on('data', dados => {
resultado += dados
})
res.on('end', () => {
try{
resolve(JSON.parse(resultado))
}catch(e){
console.log('Erro ao acessar !');
reject(e)
}
})
})
})
}
//Recurso em ES8
//Objetivo: simplificar o uso de promises ...
let obterAlunos = async() => {
const ta = await getTurma('A')
const tb = await getTurma('B')
const tc = await getTurma('C')
return [].concat(ta, tb, tc)
}
obterAlunos()
.then(alunos => alunos.map(a => a.nome))
.then(nomes => console.log(nomes))
Palavras chave:
Async / Attendre le JavaScript
Async / Čekejte na JavaScript
Async / המתן JavaScript
Async / wag op JavaScript
Async / Așteptați-i JavaScript
27/07/2020
Refatorando CallBacks para Promises em JavaScript
// sem promise...
const http = require('http');
const { reject } = require('lodash');
const getTurma = (letra, callback) => {
const url = `http://files.cod3r.com.br/curso-js/turma${letra}.json`
return new Promise((resolve, reject) =>{
http.get(url, res =>{
let resultado = ''
res.on('data', dados => {
resultado += dados
})
res.on('end', () => {
try{
resolve(JSON.parse(resultado))
}catch(e){
console.log('Erro ao acessar !');
reject(e)
}
})
})
})
}
//dispara paralelamente
let nomes = []
getTurma('A').then(alunos => {
nomes = nomes.concat(alunos.map(a => `A: ${a.nome}`))
getTurma('B').then(alunos => {
nomes = nomes.concat(alunos.map(a => `B: ${a.nome}`))
getTurma('C').then(alunos => {
nomes = nomes.concat(alunos.map(a => `C: ${a.nome}`))
console.log(nomes)
})
})
})
//todos os elementos em 1 único array
console.log();
Promise.all([getTurma('A'), getTurma('B'), getTurma('C')])
.then(turmas => [].concat(...turmas))
.then(x => console.log(x))
console.log();
Promise.all([getTurma('A'), getTurma('B'), getTurma('C')])
.then(turmas => [].concat(...turmas))
.then(turmas => alunos.map(aluno => aluno.nome))
.then(nomes => console.log(nomes))
.catch(e => console.log(e.message))
//Mensagem de erro caso o arquivo não exista
//getTurma('D'.catch(e => console.log(e.message)))
26/07/2020
CallBacks Aninhadas em JavaScript
// sem promise...
const http = require('http')
const getTurma = (letra, callback) => {
const url = `http://files.cod3r.com.br/curso-js/turma${letra}.json`
http.get(url, res => {
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 [chave, valor] of 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 [ch, vl] of assuntosMap.entries()){
console.log(ch, vl);
}
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((valor, indice) =>{
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: 1, b: 2, c: 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 = (a, b) => a + b//retorna a + b
console.log(soma,'Soma = ',soma(5, 7));
//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(2, 3, 4, 5));
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 [l, e, k, ...tras] = "BLOG engenhariaCotidiana"
console.log(l, e, k);
console.log(tras,'\n');
const[x, , y] = [1,2, 3]
console.log(x,y);
//Desestruturar usa chaves
const {idade: i, nome} = {nome: 'Ana', idade: 9}
console.log(i, nome);
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 = (ctx, next) =>{
ctx.valor1 = 'mid1'//adc dentro desse objeto
next()
}
const passo2 = (ctx, next) =>{
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(ctx, passo1, passo2, passo3)//forma interativa
console.log(ctx);
//não executa porque o passo passo3 não chama os outros
exec(ctx, passo3, passo2, passo1)
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
Assinar:
Postagens (Atom)
























