Posts com javascript

Hoisting e escopo em JavaScript

Hoisting e escopo em JavaScript

O JavaScript é uma linguagem cheia de pequenas surpresas que pode espantar até o mais experiente programador. Neste post vamos estudar um pouco mais sobre uma delas — o hoisting — e saber como se comporta mais esse dark corner da nossa querida linguagem.

ECMAScript 6 Proxy

ECMAScript 6 Proxy

O termo proxy tem suas origens no Direito dos países de língua inglesa. Um proxy é alguém com poderes legais de representar uma outra pessoa. No Brasil seria algo como alguém que possui uma procuração para representar uma outra. No ECMAScript 6, um proxy é um objeto que representa um outro. Ele é capaz de interceptar chamadas às propriedades do objeto alvo, podendo até mesmo alterar o resultado da chamada.

Segredos do Chrome Developer Tools

Segredos do Chrome Developer Tools

Inspecionar elemento, breakpoints em JavaScript e console API já virou muito mainstream. Vamos conhecer neste post algumas features mais hipsters — porém úteis — do Chrome Developer Tools que vão melhorar seu dia-a-dia.

Vibration API

Vibration API

Embora ainda não seja possível provocar terremotos de escala geográfica, já podemos fazer dispositivos vibrar com HTML5. Uma API bastante simples e que possibilita algumas funcinoalidades bem interessantes no contexto mobile.

Mamilos, pontos e vírgulas em JavaScript

Mamilos, pontos e vírgulas em JavaScript

Provavelmente um dos assuntos mais polêmicos na comunidade JS seja a omissão do ;. Esse simples caractere já foi responsável por inúmeras discussões no GitHub relacionadas ao seu uso. Muitos dizem que não é seguro deixar de usá-los mas, ao mesmo tempo, grandes projetos como Bootstrap e npm preferem omití-los. Quem está certo, então? É seguro não usar ;? Ou isso tudo é apenas uma moda jovem que os Rubyistas e Pythonistas estão tentando impor na comunidade JS?

Throttle e Debounce patterns em JavaScript

Throttle e Debounce patterns em JavaScript

Alguns eventos do browser acontecem de forma mais rápida e com mais frequência do que gostaríamos — como os eventos resize e scroll da window. Outras vezes nossos queridos usuários disparam mais eventos do que havíamos previsto em nossa aplicação, como um duplo-clique em um botão de submit de um form  AJAX. Neste post iremos aprender a controlar a frequência de execução de um determinado trecho de código JavaScript, a diferença entre debounce e throttle, quando e porque usá-las e a se defender de situações corriqueiras como as que acabamos de citar.

ECMAScript 6 Arrow Function

ECMAScript 6 Arrow Function

Inspirado no CoffeeScript, a versão 6 do ECMAScript nos traz um jeito mais simples e elegante de definirmos funções, as chamadas arrow functions. Não só syntatic sugar, elas vêm para resolver (de forma elegante) o problema do this dinâmico que todos já enfrentamos ao passarmos funções como callback.

Ambient Light Events

Ambient Light Events

Esta nova especificação da W3C define dois novos eventos capazes de detectar mudanças na iluminação do ambiente: os Ambient Light Events. Antes eles faziam parte da Sensors API, mas foram desmembrados em uma especificação independente de menor escopo. E será com estas novas APIs que vamos nos divertir hoje.

JavaScript Strict Mode

JavaScript Strict Mode

O strict mode é uma nova feature do ECMAScript 5 que permite que o código JavaScript rode em um modo mais rigoroso. Nele, a engine de JavaScript tem seu comportamento modificado, gerando erros que antes eram silenciados e, até mesmo, proibindo o uso de certas partes da linguagem que são tidas como problemáticas, nos forçando assim a escrever um código de melhor qualidade e ajudando a capturar bugs mais precocemente.

JSON. De gambiarra a padrão

JSON. De gambiarra a padrão

O JSON começou como uma alternativa mais simples ao XML para ser um formato de troca de dados entre cliente e servidor. Nasceu como uma gambiarra e hoje é o padrão, sendo implementado nativamente em todos os grandes browsers, inclusive o IE.

Vazamento de memória em JavaScript

Vazamento de memória em JavaScript

Vazamento de memória é um problema apenas de linguagens de baixo nível, como C ou C++. Nós não precisamos nos preocupar com isso, afinal, a linguagem possui um lindíssimo coletor de lixo e malloc é coisa do passado. Então, se houver vazamento de memória em JS, será um problema de implementação da linguagem, e não do programador. Certo?

Battery API

Battery API

A Battery API permite que tenhamos acesso a informações sobre a bateria do nosso dispositivo – seja ele um dispositivo móvel (smartphone ou tablet) ou um laptop. Veja o status da sua bateria neste pequeno exeperimento que desenvolvi a la windows 8.

Console e Command Line API

Console e Command Line API

Antes, para debugar código, enchiamos nosso código de alert(). Hoje temos várias ferramentas que nos auxiliam a melhor debugar, e entre elas estão o Console e a Command Line API.

Herança em JavaScript parte II

Herança em JavaScript parte II

E finalmente sai a parte II do post Herança com JavaScript. Na parte I relembramos o que é herança em linguagens de programação orientadas a objeto baseadas em classes, a cadeia de protótipos no JavaScript e como a utilizar para simular herança. Nesta parte II abordaremos alguns novos métodos definidos pela especificação ECMAScript 5 que facilitará bastante o trabalho com herança e protótipos.

Veja mais com a Fullscreen API

Veja mais com a Fullscreen API

A Fullscreen API é nova no HTML5 e nos permite entrar em modo de tela cheia programaticamente através de JavaScript. Vamos entender quais são suas limitações e algumas funcionalidades super legais.

HTML5 câmera com WebPix

HTML5 câmera com WebPix

Hoje vamos falar de coisa boa. Vamos falar de como usar sua câmera apenas com HTML5. E para mostrar isso na prática de um jeito menos chato, fizemos um pequeno experimento para ensinar melhor como funciona essa nova API de acesso à câmera do seu computador através do navegador.

Uma xícara de CoffeeScript

Uma xícara de CoffeeScript

CoffeeScript é uma linda linguagem que traz o que há de melhor (sintaticamente falando) em outras linguagens como Python e Ruby, e pra completar, também é compilável para JavaScript.

Web Notifications API

Web Notifications API

A Web Notifications é uma nova API para enviarmos notificações ao usuário fora do contexto de uma página web. Para quem usa Mac, imaginem que Web Notifications é o Growl para a web. Uma API simples que nos dá acesso a features antes só disponíveis para aplicações nativas.

Herança em JavaScript parte I

Herança em JavaScript parte I

Uma das coisas que mais assusta programadores vindos de linguagens orientadas a objeto, como Java e C++, é a falta de classes em JavaScript. Muitos, inclusive, tentam simular este comportamento no JavaScript, mas poucos conseguem com sucesso. Neste post numa série de 2, iremos relembrar o que é herança, a cadeia de protótipos e como era feito a herança em JavaScript.