sábado, 10 de abril de 2021

CURSO JAVASCRIPT - CAP. 4

 

Introdução – JavaScript | MDN (mozilla.org)

CAPÍTULO 4

Cortesia da Startup Valeon (https://valedoacoonline.com.br/)

Laços e iterações

Laços oferecem um jeito fácil e rápido de executar uma ação repetidas vezes. Este capítulo do guia do JavaScript abordará diferentes formas de iterações existentes no JavaScript.

Você pode pensar em um laço de repetição como um jogo onde você manda o seu personagem andar X passos em uma direção e Y passos em outra; por exemplo, a ideia “vá 5 passos para leste” pode ser expressa em um laço desta forma:

var passo;
for (passo = 0; passo < 5; passo++) {
  // Executa 5 vezes, com os valores de passos de 0 a 4.
  console.log('Ande um passo para o leste');
}

Existem várias formas diferentes de laços, mas eles essencialmente fazem a mesma coisa: repetir uma ação múltiplas vezes ( inclusive você poderá repetir 0 vezes). Os vários mecanismos diferentes de laços oferecem diferentes formas de determinar quando este irá começar ou terminar. Há várias situações em que é mais fácil resolver um problema utilizando um determinado tipo de laço do que outros.

Os possíveis laços de repetição  em JavaScript:

Declaração for

Um laço for é repetido até que a condição especificada seja falsa. O laço for no JavaScript é similar ao Java e C. Uma declaração for é feita da seguinte maneira:

for ([expressaoInicial]; [condicao]; [incremento])
  declaracao

Quando um for é executado, ocorre o seguinte:

  1. A expressão expressao Inicial é inicializada e, caso possível, é executada. Normalmente essa expressão inicializa um ou mais contadores, mas a sintaxe permite expressões de qualquer grau de complexidade. Podendo conter também declaração de variáveis.
  2. A expressão condicao é avaliada. caso o resultado de condicao seja verdadeiro, o laço é executado. Se o valor de condicao é falso, então o laço terminará. Se a expressão condicao é omitida, a condicao é assumida como verdadeira.
  3.  A instrução é executada. Para executar múltiplas declarações, use uma declaração em bloco ({ … }) para agrupá-las.
  4. A atualização da expressão incremento, se houver, executa, e retorna o controle para o passo 2.

Exemplo

A função a seguir contém uma declaração for que contará o número de opções selecionadas em uma lista (um elemento <select> permite várias seleções). Dentro do for é declarado uma váriavel i inicializada com zero. A declaração for verifica se i é menor que o número de opções no elemento <select>, executa sucessivas declaração  if, e incrementa i de um em um a cada passagem pelo laço.

<form name="selectForm">
  <p>
    <label for="tipoMusica">Escolha alguns tipos de música, em seguida, clique no botão abaixo:</label>
    <select id="tipoMusica" name="tipoMusica" multiple="multiple">
      <option selected="selected">R&B</option>
      <option>Jazz</option>
      <option>Blues</option>
      <option>New Age</option>
      <option>Classico</option>
      <option>Ópera</option>
    </select>
  </p>
  <p><input id="btn" type="button" value="Quantos foram selecionados?" /></p>
</form>
 
<script>
function howMany(selectObject) {
  var numeroSelecionadas = 0;
  for (var i = 0; i < selectObject.options.length; i++) {
    if (selectObject.options[i].selected) {
      numeroSelecionadas++;
    }
  }
  return numeroSelecionadas;
}
 
var btn = document.getElementById("btn");
btn.addEventListener("click", function(){
  alert('Total de opções selecionadas: ' + howMany(document.selectForm.tipoMusica))
});
</script>
 

Declaração do...while

A instrução do…while repetirá até que a condição especificada seja falsa.

do
  declaracao
while (condicao);

A instrução será executada uma vez antes da condição ser verificada. Para executar multiplas instruções utilize uma declaração de bloco ({ … }) para agrupá-las. Caso a condicao seja verdadeira, então o laço será executado novamente. Ao final de cada execução, a condicao é verificada. Quando a condição contida no while for falsa a execução do laço é terminada e o controle é passado para a instrução seguinte a do...while.

Exemplo

No exemplo a seguir, o laço é executado pelo menos uma vez e irá executar até que i seja menor que 5.

do {
  i += 1;
  console.log(i);
} while (i < 5);

Declaração while

Uma declaração while executa suas instruções, desde que uma condição especificada seja avaliada como verdadeira. Segue uma declaração while

while (condicao)
  declaracao

Se a condição se tornar falsa,  a declaração dentro do laço para a execução e o controle é passado para a instrução após o laço.

O teste da condição ocorre antes que o laço seja executado. Desta forma se a condição for verdadeira o laço executará e testará a condição novamente. Se a condição for falsa o laço termina e passa o controle para as instruções após o laço.

Para executar múltiplas declarações, use uma declaração em bloco ({ … }) para agrupar essas declarações.

Exemplo 1

while a seguir executará enquanto n for menor que três:

n = 0;
x = 0;
while (n < 3) {
  n++;
  x += n;
}

A cada iteração, o laço incrementa n e adiciona este valor para x. Portanto, x e n recebem os seguintes valores:

  • Depois de executar pela primeira vez: n = 1 e x = 1
  • Depois da segunda vez: n = 2 e x = 3
  • Depois da terceira vez: n = 3 e x = 6

Depois de executar pela terceira vez, a condição n < 3 não será mais verdadeira, então o laço encerrará.

Exemplo 2

Evite laços infinitos. Tenha certeza que a condição do laço eventualmente será falsa; caso contrário, o laço nunca terminará. O while a seguir executará para sempre pois sua condição nunca será falsa:

while (true) {
  console.log("Olá, mundo");
}

Declaração label

Um label provê um identificador que permite que este seja referenciado em outro lugar no seu programa. Por exemplo, você pode usar uma label para identificar um laço, e então usar break ou continue para indicar quando o programa deverá interromper o laço ou continuar sua execução.

Segue a sintaxe da instrução label:

label : declaracao

Um label pode usar qualquer idenficador que não seja uma palavra reservada do JavaScript. Você pode identificar qualquer instrução com um label.

Exemplo

Neste exemplo, o label markLoop idenfica um laço while.

markLoop:
while (theMark == true) {
   facaAlgo();
}

Declaração break

Use break para terminar laços, switch, ou um conjunto que utiliza label.

  • Quando você utiliza break sem um label, ele encerrará imediatamente o laço mais interno whiledo-whilefor, ou switch e transferirá o controle para a próxima instrução.
  • Quando você utiliza break com um label, ele encerrará o label específico.

Segue a sintaxe do break:

  1. break;
  2. break label;

Na primeira opção será encerrado o laço de repetição mais interno ou switch. Já na segunda opção será encerrada o bloco de código referente a label.

Exemplo 1

O exemplo a seguir percorre os elementos de um array até que ele encontre o índice do elemento que possui o valor contido em theValue:

for (i = 0; i < a.length; i++) {
  if (a[i] == theValue) {
    break;
  }
}

Exemplo 2: Utilizando break em label

var x = 0;
var z = 0
labelCancelaLaco: while (true) {
  console.log("Laço exterior: " + x);
  x += 1;
  z = 1;
  while (true) {
    console.log("Laço interior: " + z);
    z += 1;
    if (z === 10 && x === 10) {
      break labelCancelaLaco;
    } else if (z === 10) {
      break;
    }
  }
}

Declaração continue

A declaração continue pode ser usada para reiniciar uma instrução whiledo-whilefor, ou label.

  • Quando você utiliza continue sem uma label, ele encerrará a iteração atual mais interna de uma instrução whiledo-while, ou for e continuará a execução do laço a partir da próxima iteração. Ao contrário da instrução breakcontinue não encerra a execução completa do laço. Em um laço while, ele voltará para a condição. Em um laço for, ele pulará para a expressão de incrementação.
  • Quando você utiliza continue com uma label, o continue será aplicado ao laço identificado por esta label. 

Segue a sintaxe do continue:

  1. continue;
  2. continue label;

Exemplo 1

O exemplo a seguir mostra um laço while utlizando continue que executará quando o valor de i for igual a 3. Desta forma, n recebe os valores um, três, sete, e doze.

i = 0;
n = 0;
while (i < 5) {
  i++;
  if (i == 3) {
    continue;
  }
  n += i;
}

Exemplo 2

Uma instrução label checkiandj contém uma instrução label checkj. Se o continue for executado, o programa terminará a iteração atual de checkj e começará a próxima iteração. Toda vez que o continue for executado, checkj recomeçará até que a condição do while for falsa. Quando isto ocorrer checkiandj executará até que sua condição seja falsa.

Se o continue estivesse referenciando checkiandj, o programa deveria continuar do topo de checkiandj.

checkiandj:
  while (i < 4) {
    console.log(i);
    i += 1;
    checkj:
      while (j > 4) {
        console.log(j);
        j -= 1;
        if ((j % 2) == 0) {
          continue checkj;
        }
        console.log(j + " é estranho.");
      }
      console.log("i = " + i);
      console.log("j = " + j);
  

Declaração for...in

A declaração for…in executa iterações a partir de uma variável específica, percorrendo todas as propriedades de um objeto.
Para cada propriedade distinta, o JavaScript executará uma iteração. Segue a sintaxe:

for (variavel in objeto) {
  declaracoes
}

Exemplo

A função a seguir recebe em seu argumento um objeto e o nome deste objeto. Então executará uma iteração para cada elemento e retornará uma lista de string, que irá conter o nome da propriedade e seu valor.

function dump_props(obj, obj_name) {
  var result = "";
  for (var i in obj) {
    result += obj_name + "." + i + " = " + obj[i] + "<br>";
  }
  result += "<hr>";
  return result;
}

Para um objeto chamado car com propriedades make e model, o resultado será:

car.make = Ford
car.model = Mustang

Arrays

Embora seja tentador usar esta forma para interagir com os elementos de um Array, a declaração for…in irá retornar o nome pré-definido da propriedade ao invés do seu index numérico. Assim é melhor usar o tradicional for com index numérico quando interagir com arrays, pois o for…in interage com as propriedades definidas pelo programador ao invés dos elementos do array.

Declaração for...of

 A declaração for…of cria uma laço com objetos interativos ((incluindo, ArrayMapSet, assim por conseguinte ), executando uma iteração para o valor de cada propriedade distinta.

for (variavel of objeto) {
  declaracoes
}

O exemplo a seguir mostra a diferença entre o for...of e o for…in. Enquanto o for...in interage com o nome das propriedades, o for...of interage com o valor das propriedades.

let arr = [3, 5, 7];
arr.foo = "hello";
 
for (let i in arr) {
   console.log(i); // logs "0", "1", "2", "foo"
}
 
for (let i of arr) {
   console.log(i); // logs "3", "5", "7"
}

NINGUÉM ESTÁ TRANQUILO NA PANDEMIA

 

A ameaça da falta de oxigênio é contínua e nos mantém nesse estado de angústia constante

Daniel Martins de Barros, O Estado de S.Paulo

Depois de pegar um pouco de barro e modelar o protótipo do que viria a sermos nós, diz o livro de Gênesis que Deus tomou em suas mãos aquilo que até então era apenas um boneco e soprou-lhe nas narinas. E foi apenas quando o ar entrou que surgiu nele a vida. Como, aliás, acontece em todo ser vivente: eles trazem em si o fôlego de vida, segundo o mesmo texto.

A relação entre a respiração e a vida transcende a biologia e já estava presente em religiões mais antigas, como no Atarvaveda, texto sagrado hindu: “A respiração tece o homem”, afirma. 

UTI covid-19
UTI que trata pacientes com covid Foto: Tiago Queiroz/Estadão

Coerentemente, os hindus colocam grande ênfase nas práticas respiratórias, incluindo-as conscientemente como práticas religiosas.

Embora distantes de textos antigos, nós sabemos intuitivamente que respirar é mais do que apenas levar oxigênio para o corpo e eliminar o gás carbônico. Quando dizemos que precisamos respirar um ar puro, estamos nos remetendo à busca de tranquilidade. 

Ficar ao ar livre é associado à liberdade, mais do que à ventilação. Chamamos sufocantes ambientes emocionalmente desgastantes. Das pessoas que não nos dão paz dizemos que não nos deixam respirar.

Essa ligação entre ar e vida ampla tem raízes profundas em nossa fisiologia. Nosso organismo traz embutidos mecanismos para detectar a queda de oxigênio e aumento de gás carbônico a partir da concentração desses gases no sangue. Ao verificar falta do primeiro e – sobretudo – excesso do segundo, receptores disparam sinais para o tronco cerebral, que controla nossa respiração de forma automática, acelerando a frequência respiratória. 

Tal resposta seria insuficiente em situações nas quais falta ar no ambiente, contudo – não bastaria respirar mais ou mais rapidamente –, é preciso sair dali. Por isso, o alarme não fica restrito ao tronco cerebral e atinge áreas mais elaboradas do cérebro, trazendo para a consciência a sensação de morte iminente, o desespero que nos impele a fazer algo.

A brincadeira de ver quem fica mais tempo sem respirar é suficiente para dar ideia da aflição que traz o aumento da concentração de gás carbônico no sangue. O sinal de alerta disparado dá sensação de desespero, urgência para agir e resolver a causa da situação. Não surpreenderá o leitor que o aumento artificial da concentração de gás carbônico no sangue é um modo experimental de estudar a síndrome do pânico. Em pessoas mais sensíveis, a simples apneia voluntária basta para disparar uma crise de pânico completa.

Com nossa riqueza de simbolismos e capacidade de extrapolar conceitos, é fácil compreender que tal desespero diante da iminência da morte transcenda, de fato, a mera representação biológica do morrer para representar ameaça à vida em seu sentido mais amplo. 

E assim, a sensação de sufocamento é logo compreendida como uma sensação de angústia, aflição existencial. Freud mesmo chamou as crises de pânico, com sua taquicardia, sudorese, vertigem, de equivalentes de angústia – eles seriam sinais físicos desse desespero mais primordial.

Acredito que é por isso que venho me sentindo sufocado diante do noticiário nas últimas semanas. Não que o crescente placar de mortos no Brasil e no mundo fosse insuficiente para me colocar aflito. Mas quando começaram relatos de falta de oxigênio para pacientes, percebi que o sofrimento havia mudado de nível. 

Tudo começou na crise de Manaus. O tom das reportagens era claramente outro, bem como seu impacto. Já não era apenas a tragédia das mortes. Tampouco o absurdo de serem mortes potencialmente evitáveis. Eram pessoas morrendo por falta de ar, sufocadas. Empaticamente passei a sentir o desespero da morte iminente. De Manaus para o Brasil, esse sufoco se espalhou e hoje ninguém está tranquilo.

Se tais óbitos não têm ocorrido diariamente pelo País, sua ameaça é contínua como uma possibilidade posta no horizonte, nos mantendo nesse estado de angústia constante.

Tomara que todo brasileiro sinta-se assim, angustiado. Desesperado. Para que esse alarme, tão profundamente arraigado em nossos cérebros para nos fazer fugir da situação que nos rouba o ar, finalmente nos ponha em marcha na direção certa.

É PROFESSOR COLABORADOR DO DEPARTAMENTO E INSTITUTO DE PSIQUIATRIA DA FACULDADE DE MEDICINA DA UNIVERSIDADE DE SÃO PAULO (FMUSP)

VENDER MUITO SIGNIFICA LUCROS?

 

Fernando G. Custódio*

Ter maiores volumes de vendas para obter melhores resultados financeiros é uma linha de ação praticada por muitas empresas. Entretanto, essa estratégia deve ser tratada com muito zelo.

Vender mais, requer uma série de estudos. Precisamos conhecer mais uma vez, ou mais detalhadamente o mercado. Conhecer os custos a empresa, a percepção de valores pelos clientes e ainda as ações da concorrência.

Aumentar o volume de vendas aplicando por exemplo, a estratégia descontos no preço de vendas, pode nos dar uma falsa impressão de resultados positivos. Ora, se o custo variável da empresa, onde temos o custo das mercadorias vendidas não teve alterações, e a empresa optou por baixar o preço de vendas, a consequência é óbvia: redução da margem de contribuição. Se reduzimos as margens de contribuição e mantemos o custo fixo, o resultado final é a direta redução do lucro da empresa, podendo levar até mesmo a transformação desse lucro em resultados negativos, ou seja, prejuízo. É comum vermos empresas utilizando dessas estratégias para aumentar as receitas. Mas, a pergunta que fica é até que pontos os custos estão sendo avaliados. Até que ponto esses descontos que visam aumentar o volume de vendas, ainda é o suficiente para cobrir os custos. A formação do preço de vendas, parte da apuração dos custos. E através dos custos totais, aqui tratando de todos eles, os diretos e os indiretos, o gestor aplica um percentual de lucros, necessário para a remuneração dos sócios e acionistas. Se ao partir do preço de vendas damos um percentual de desconto, significa que estamos aplicando esse percentual em toda a cadeia de custos, e não somente nos valores de lucros. A questão é até que ponto a empresa conseguiu esses descontos juntos aos seus fornecedores, todos que fizeram parte da composição dos custos e formação do preço de vendas. E ainda, caso esse controle seja ineficiente, ou não exista, corremos o risco de termos margens de contribuição negativas, ou seja, vender pelo preço menor que o custo unitário dos produtos vendidos ou serviços prestados.

Quando a estratégia é aumento do volume de vendas sem redução de receitas, ou seja, sem descontos, aí sim temos uma estratégia perfeita. O que nem sempre é possível, pois exige na maioria das vezes algum tipo de investimento, até mesmo para a divulgação dessas estratégias ao público alvo.

Então, a melhor estratégia não é simplesmente vender mais, e sim fazer efetivamente vendas “boas”, que são aquelas que geram margens de contribuição positivas, tão necessárias para o pagamento dos custos fixos e a geração de lucros para remunerar os sócios e acionistas.

* Mestre em Administração e professor dos Cursos de Administração e Gestão Financeira das Faculdades Promove

Faça boas vendas e gere bons lucros anunciando no site da Startup Valeon um marketplace aqui do Vale do Aço.

VOCÊ CONHECE A VALEON?

O CANAL DE VENDAS ONLINE DO VALE DO AÇO

TEM TUDO QUE VOCÊ PRECISA!

A Valeon é uma caixinha de possibilidades. Você pode moldar ela em torno do negócio. O que é muito importante. O nosso é colocar o consumidor no centro e entender o que ele precisa. A Valeon possibilita que você empresário consiga oferecer, especificamente para o seu consumidor, a melhor experiência. A Valeon já é tradicional e reconhecida no mercado, onde você empresário pode contar com a experiência e funcionalidades de uma tecnologia corporativa que atende as principais operações robustas do mundo essencial e fundamental. A Valeon além de trazer mais segurança e credibilidade para o seu negócio, também resulta em muita troca de conhecimento e ótimos resultados para ambos os lados, como toda boa parceria entre empresas deve ser. Lembrem-se que a Valeon é uma Startup Marketplace de Ipatinga-MG que tem a responsabilidade de levar o cliente até à sua empresa e que temos potencial para transformar mercados, impactar consumidores e revirar empresas e indústrias onde nossos produtos e serviços têm capacidade de escala e de atrair os investimentos corretos para o nosso crescimento.

O QUE OFERECEMOS E VANTANGENS COMPETITIVAS

  • Fazemos anúncios de publicidade para vários tipos de Empresas, Serviços e para Profissionais Liberais;
  • Temos excelente custo x benefício;
  • Nossos sites: (https://valedoacoonline.com.br/ e https://valeonnoticias.com.br/) têm grande penetração no mercado consumidor com um bom marketing fit que satisfaz esse mercado;
  • A nossa Plataforma Comercial Valeon permite total flexibilidade de anúncios, promoções e de produtos, além de oferecer serviços de divulgação de Ofertas de Supermercados e de Veículos;
  • Os resultados são mensurados através de métricas diária/mensal;
  • O seu negócio estará disponível para milhares de Internautas através de uma vitrine aberta na principal avenida do mundo, 24 horas por dia, 7 dias da semana;
  • A sua empresa fica visível para milhares de pessoas que nem sabiam que ela existe;
  • Somos altamente comprometidos com os nossos clientes no atendimento de suas demandas e prazos e inteiramente engajados para aumentar as suas vendas.

Nossos contatos: Fones: (31) 3827-2297 e (31) 98428-0590 (Wp)

E-MAIL: valeonbrasil@gmail.com

Site: https://valedoacoonline.com.br/

MICHAEL STOTT EDITOR DO FINANCIAL TIMES ANALISA A SITUAÇÃO ECONÔMICA E POLÍTICA BRASILEIRA DO GOVERNO LULA

  Área econômica é o ponto mais fraco do governo...