impJS / impAprendaJS

Grupo de estudos para pessoas que querem aprender JavaScript.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Semana 2

HenriqueSilverio opened this issue · comments

Inicio: 23/02/2014 ~ Fim: 01/03/2014

Instruções: https://github.com/impJS/impAprendaJS/wiki/Semana-2

Observação: dúvidas recorrentes para esta semana deverão ser publicadas neste link.

# Project Euler 1

Segue minha solução para o problema proposto:

var total = 0;

for( var i = 0; i < 1000; i++ ) {
    if( i % 3 === 0 || i % 5 === 0 ) {
       total += i;
    }
}

console.log(total); // 233168

Segue minha solução do Projeto Euler.

http://jsfiddle.net/fbadaro/2jU76/

A solução do projeto Euler não tem muito o que diferenciar, mas segue uma ideia pra deixar um pouco mais performático: http://codepen.io/anon/pen/JIewg

Ou usando while: http://codepen.io/anon/pen/eIlpx

xD

Segue algumas anotações que fiz, de alguns pontos que achei importante no capítulo 3.

Capítulo 3: Tipos, Valores e Variáveis

Os tipos de JavaScript podem ser divididos em duas categorias: primitivos e objetos.

Qualquer valor em JavaScript que não seja um número, string, boolean, null ou undefined, é um objeto.

Os tipos também podem ser divididos em: tipos com métodos e sem métodos, ou mutáveis e imutáveis.

As variáveis em JavaScript são não tipadas e são declaradas com a keyword var.

JavaScript utiliza escopo léxico, ou seja: variáveis declaradas fora de uma função são "variáveis globais" e as declaradas dentro de uma função tem "escopo de função" (visíveis apenas no corpo da função à qual foram declaradas).

Strings, Números, Booleans diferem de objetos pois suas propriedades são somente para leitura e não é possível definir novas propriedades neles.

Objetos são comparados por referência. Se quiser clonar (criar uma nova cópia) de um objeto ou array, deverá copiar explicitamente as propriedades do objeto ou dos elementos do array.

Escopo de variável

Variável global: tem escopo global, ou seja, está definida para ser usada em qualquer parte do código JavaScript.

Variável local: Variáveis declaradas dentro do corpo de uma função estão definidas apenas dentro da função. Parâmetros de função também constam como variáveis locais, ou seja, estão disponíveis apenas dentro da função a qual foram declaradas e tem precedência à variáveis globais que tem o mesmo nome.

Shallow copy (clone sem profundidade) para array e objeto.

http://jsbin.com/gijujoza/3/edit

Então, com relação ao desafio 1 fiz ele baseado no artigo dessa semana e transformei ele num objeto. Quem quiser ver, estou colocando esse e todo o código que ando fazendo daqui nesse repositório:
http://goo.gl/AHosWR

Leitura do capítulos terminada e exercícios do CodeAcademy concluídos dia 27/02.

Terminada a seção do codecademy, lidos os capítulos do guia definitivo, lido o artigo e aprendir o que é expressão Regular e segue a minha resolução do projeto Euler. Agora não tenho dúvidas que vou aprender Javascript Rumo a próxima semana!!!!

http://jsfiddle.net/gfront/GcW58/

Concluída as atividades hoje no dia 01/03

Segue a resolução correta não tinha sido salvo no momento que eu enviei.
http://jsfiddle.net/H3v4z/3/

@grodrigues bem o a resolução do desafio de Euler esta errada, vc tem q somar, a var i, a uma variável total a cada vez que i for múltiplo de 3 ou 5, da uma olhada nas resoluções dos outros participantes.

Terminei as tarefas dessa semana hoje, dia 01/03/2014.

Estou numa correria danada com freela para terminar, "666 trabalhos das 666 matérias" da faculdade para fazer e as tarefas do roteiro para seguir, entre outras coisas.

Mas é isso aí, missão cumprida. "Bora" pra próxima semana!

2ª Semana Andamento das Tarefas
Leitura: Capítulos 3 à 5 100%
Codeacademy: Secções 2 à 6 100%
Desafio: Project Euler I 20%

@CristinaSilvaEng Show! Só uma observação: a leitura do artigo "JavaScript Objects in Detail" faz parte das tarefas da Semana 3. ;-)

Capítulo 3,4,5 do Livro ------------->OK
Code Acedemy: Seção 2 até 6--->OK
Desafio do Project Euler I:--------->OK
Forma Normal: - http://jsbin.com/biyejelu/1/edit

function desafio(){
  var result = 0,i=0;
  for(;i<1000;i++)
    if(i % 3 === 0 || i % 5 === 0)result += i;  
  return result;
}
console.log(desafio());

Forma Resumida: - http://codepen.io/anon/pen/zjBeg

var desafio = function(){
    var result = i = 0;
    for(;i<1000;i++)(i % 3 === 0 || i % 5 === 0) ? result += i:''; return result;
}
console.log(desafio());

Artigo JavaScript Objects in Detail: Lendo Agora e Finalizando!
Let's Go 👍

Livro JS capítulos da semana 2 (finalizado)
Code Academy (finalizado)
Project Euler 1- Lógica bem humilde:http://codepen.io/anon/pen/Kldaw (finalizado)
JavaScript Objects - Artigo (leitura para o domingão)

Terminei os capitulos, project euler, o artigo, não deu tempo de completar o code academy.

Acho que vou ter que rever algumas questões, principalmente sobre os "Type Conversion", object-to-primitive, primitive-to-object, ..., quais operações exigem uma outra conversão.

Saber melhor o que aconte quando fazemos

[] + []
{} + []
[] + {}
{} + {}

Obrigada, @HenriqueSilverio, me sinto menos enrolada agora.

Galera, desculpa pelo atraso! Essa semana eu viajei alguns dias e depois que cheguei fiquei + 3 dias sem internet! hehe Mas consegui terminar tudo! E já vamos emendar na próxima semana =D

Tarefa Status
Leitura Cap. 3, 4, 5
Project Euler
Codecademy 2 ao 6

Enviado por Samsung Mobile

-------- Mensagem original --------
De : Eric Douglas notifications@github.com
Data: 02/03/2014 16h10 (GMT-03:00)
Para: impJS/impAprendaJS impAprendaJS@noreply.github.com
Cc: Anderson Pavia andersonaap@hotmail.com
Assunto: Re: [impAprendaJS] Semana 2 (#36)

Galera, desculpa pelo atraso! Essa semana eu viajei alguns dias e depois que cheguei fiquei + 3 dias sem internet! hehe Mas consegui terminar tudo! E já vamos emendar na próxima semana =D

Tarefa Status
Leitura Cap. 3, 4, 5 ✔
Project Euler ✔
Codecademy 2 ao 6 ✔

Reply to this email directly or view it on GitHub.

Tarefa Status
Leitura Cap. 3, 4, 5 3 ✔ 4 ✔ 5 ✔
Project Euler
Codecademy 2 ao 6