A natureza livre do JavaScript permite que os desenvolvedores empreguem truques incríveis para fazer praticamente tudo o que o senhor quiser. Detalhei como o senhor pode filtrar valores falsos em matrizes usando um filter(Boolean) mas o leitor David Hibshman compartilhou outro truque para fazer typecasting de valores de array da mesma forma. Para fazer typecast […]
Tag: JavaScript

Definir a velocidade de reprodução de vídeo com JavaScriptDefinir a velocidade de reprodução de vídeo com JavaScript
Adoro o fato de a mídia ter passado de plug-ins personalizados (Flash… que nojo) para HTML básico <video> e <audio> elementos. Tratar essas fontes de mídia como apenas outro elemento nos permite usar filtros CSS para ajustar a exibição, por exemplo. Quanto menos precisarmos fazer com o ffmpeg ou plugins, melhor. Tenho notado que muitos […]

Proxy JavaScript com armazenamentoProxy JavaScript com armazenamento
O API de proxy JavaScript fornece uma grande quantidade de “mágica” no JavaScript, permitindo que o senhor use qualquer objeto como uma espécie de alias que permite uma parede de validação, formatação e lançamento de erros. O senhor sabia que também pode usar a API de proxy como uma abstração para diferentes tipos de armazenamento? […]

Pesquisas reversas com JavaScriptPesquisas reversas com JavaScript
Sempre gostei de explorar expressões regulares porque elas são uma daquelas habilidades que nunca são ensinadas na escola: o senhor precisa aprendê-las na hora, fazendo erros e corrigindo-os ao longo do caminho. As expressões regulares são incrivelmente poderosas, e um poder que elas têm são as chamadas “backreferences”, que basicamente permitem que o senhor use […]

JavaScript waitForTimeJavaScript waitForTime
Eu escrevo muitos testes para novos recursos no Firefox DevTools. Temos centenas de “mochitests” que abrem o navegador e executam ações sintéticas, como clicar, digitar e outras ações do usuário. Já escrevi anteriormente sobre waitForever que basicamente interrompe as ações seguintes sem bloquear o navegador. Outro utilitário de que gosto é o waitForTime, uma função […]

API Picture-in-Picture do JavaScriptAPI Picture-in-Picture do JavaScript
Como grande fã de mídia na Web, sempre fico empolgado com os aprimoramentos na forma como podemos controlar nossa mídia. Talvez eu fique entusiasmado com coisas simples como a <video> e seus elementos e atributos associados, porque a mídia na Web começou com codecs personalizados, extensões de navegador e Flash. O mais recente e incrível […]

Criando o Cloak of Invisibility em JavaScriptCriando o Cloak of Invisibility em JavaScript
Esteganografia. A arte de esconder algo bem debaixo do seu nariz. Desde que os seres humanos existem, tentamos esconder coisas, seja nossa última fatia de pizza ou a localização de um tesouro enterrado. O senhor se lembra do truque legal da tinta invisível de limão, em que escrevíamos a mensagem secreta com limão e aquecíamos […]

JavaScript em SVGsJavaScript em SVGs
Os SVGs são uma ferramenta incrível para criar fontes personalizadas, animações, gráficos com tamanho reduzido e muito mais. Eles são parte HTML, parte imagem, e tudo isso é incrível. Muitos sites passaram a usar SVG em vez de JPG, GIF e PNG devido à flexibilidade que o SVG oferece. Qual é um exemplo dessa flexibilidade? […]

5 Truques incríveis de promessa em JavaScript5 Truques incríveis de promessa em JavaScript
O API Promise mudou o jogo em JavaScript. Deixamos de abusar da setTimeouts e de nos contentarmos com operações síncronas para fazer todo o possível para aproveitar essa nova API assíncrona. Vamos dar uma olhada em alguns truques incríveis da API Promise! Um problema do qual nos queixamos imediatamente com as promessas foi o fato […]

Detectar funções de gerador com JavaScriptDetectar funções de gerador com JavaScript
No clima atual do JavaScript de novas sintaxes, recursos e uso de muitas bibliotecas externas, parece mais difícil do que nunca ter certeza do que as funções estão recebendo ou mesmo do que os dados representam. É claro que criamos o Flow e o TypeScript para ajudar, mas não podemos contar com eles sempre disponíveis. […]