Por que você deve ficar sempre de olho na performance do seu site

A gente é bem bitolado em performance aqui na Alura e na Caelum há bastante tempo. Já seguimos muitas boas práticas na hora de desenvolver e até ensinamos várias delas nos cursos de performance front-end. Mas a vida acontece Mais especificamente, as coisas evoluem. Mudam organicamente. Uma funcionalidade nova aqui, outra ali. Muita gente mexe
Continuar lendo…

Herança em JavaScript

Temos um construtor Conta que define um atributo saldo e um método deposita: [code language=”javascript”] function Conta() { this.saldo = 0; this.deposita = function(valor) { this.saldo += valor; }; } var contaCorrente = new Conta(); contaCorrente.deposita(1000); contaCorrente.saldo; //1000 [/code] Legal, funciona! Agora, nosso cliente precisa de uma conta poupança: um tipo de conta que atualiza
Continuar lendo…

Construtores em JavaScript

Criar um objeto em JavaScript é bem tranquilo: [code language=”javascript”] var produto1 = { nome: "Blusa", preco: 120, calculaDesconto: function(){ return this.preco * 0.1; //10% de desconto } }; produto1.calculaDesconto(); //12 [/code] Como faríamos pra ter um segundo produto, com o mesmo cálculo de desconto? Assim: [code language=”javascript”] var produto1 = { nome: "Blusa", preco:
Continuar lendo…

Ampliando a String do JavaScript

Será que existe alguma maneira de reverter os caracteres de uma String em JavaScript? [code language=”javascript”] "arroz".reverse(); //TypeError: "arroz".reverse is not a function [/code] É… Parece que não… Mas um Array tem essa função de reverter: [code language=”javascript”] [1,2,3].reverse(); //[3,2,1] [/code] Poderíamos transformar a String em Array com split, reverter esse Array e transformá-lo novamente
Continuar lendo…

Funcionalidade: sugestão de edição de conteúdo no Alura

“Agora seu usuário já pode comer o projeto.”, ops, começar o projeto. Quem nunca cometeu um erro ao digitar? Seja por culpa do corretor, pressa ou desatenção. Uma das funcionalidades mais interessantes que implementamos no Alura foi a possibilidade do próprio aluno enviar a correção de um erro nas explicações, afinal mesmo com diversas fases
Continuar lendo…

JSON e Objeto JavaScript são a mesma coisa?

Já criou algum objeto próprio em Javascript? Tipo: [code language=”javascript”] { nome: ‘Ananias’, idade: 20, endereco: { rua: "Vergueiro", cidade: "São Paulo" }, telefones: ["91234-5678", ‘98765-4321’], "calcula-ano-nascimento": function(){ //obtem ano atual var anoAtual = new Date().getFullYear(); return anoAtual – this.idade; } } [/code] O objeto anterior tem várias propriedades: nome é uma string, idade é
Continuar lendo…

Escopos no JavaScript

Todo mundo sabe que uma variável local é… local: [js] function(){ var i = 0; } alert(i); // não funciona [/js] Mas e isso? [js] if (algumaCoisa){ var i = 0; } alert(i); [/js] Uma variável declarada dentro do if é visível fora dele? Sim! JavaScript só tem escopo de função (e o escopo global).
Continuar lendo…

Quem disse que eu preciso de jQuery?

O jQuery é um framework muito bom. E com muitas funções. Mas muitos usam para coisas simples, por não saber fazer em JavaScript puro. Selecionar elementos é uma dessas coisas. Em jQuery a gente faz: [js] $(‘#principal’) $(‘.navegacao a’) $(‘button:last-child’) [/js] Ou seja, passamos um seletor CSS e ele encontra os elementos na página pra
Continuar lendo…