Become an Angular expert.

Learn how
  • Far beyond the basics
  • Get up to speed quickly
  • Teaching from real experience
  • Up-to-date material
  • Proven results

JavaScript

All articles on JavaScript, ES6 and tips and tricks

Cache-busting in Jekyll, GitHub pages

I’ve always found updating my blog an interesting feat, however with several...

Oct 23, 2016 1 min read

Pure versus impure functions

Understanding pure and impure functions is a simple transition into cleaner, more...

Oct 11, 2016 6 mins read

ES6 arrow functions, syntax and lexical scoping

ES2015 (ES6) introduces a really nice feature that punches above its weight...

Apr 14, 2015 4 mins read

Polyfills suck, use a featurefill instead

I’m going to dub this a featurefill as the post title suggests,...

Dec 1, 2014 3 mins read

Replacing switch statements with Object literals

In many programming languages, the switch statement exists - but should it...

Jul 17, 2014 7 mins read

Web Components and concepts, ShadowDOM, imports, templates, custom elements

Web Components, the future of the web, inspired from attending Google I/O...

Jul 2, 2014 9 mins read

Methods to determine if an Object has a given property

There are multiple ways to detect whether an Object has a property....

Jun 30, 2014 5 mins read

What (function (window, document, undefined) {})(window, document); really means

In this post, we’re going to explore what the title suggests, and...

Jun 3, 2014 4 mins read

Understanding JavaScript types and reliable type checking

Type checking in JavaScript can often be a pain, especially for new...

Jun 2, 2014 4 mins read

Simple forEach implementation for Objects/NodeLists/Arrays

Looping Objects is easy. Looping Arrays is also easy. Looping NodeLists is...

May 14, 2014 2 mins read

Understanding the “this” keyword in JavaScript

It’s probably safe to say that the this keyword is one of...

Apr 12, 2014 8 mins read

Writing a standalone Ajax/XHR JavaScript micro-library

Whether you’re working with websites or applications, you’re bound to have faced...

Mar 31, 2014 6 mins read

Ditch the [].forEach.call(NodeList) hack

I’ve got to admit before we go any further, I used to...

Feb 23, 2014 6 mins read

Stratos.js simplifying Object manipulation

JavaScript Objects are usually the driving force behind applications I develop, specifically...

Feb 22, 2014 3 mins read

Mastering the Module Pattern

I’m a massive fan of JavaScript’s Module Pattern and I’d like to...

Jan 29, 2014 9 mins read

Avoiding anonymous JavaScript functions

Anonymous functions, the art of the callback. I’m going to propose that...

Jan 19, 2014 4 mins read

Everything you wanted to know about JavaScript scope

The JavaScript language has a few concepts of “scope”, none of which...

Dec 29, 2013 13 mins read

Stop toggling classes with JS, use behaviour driven DOM manipulation with data-states

Using a class to manipulate the DOM? What about this idea. Using...

Dec 17, 2013 4 mins read

A comprehensive dive into NodeLists, Arrays, converting NodeLists and understanding the DOM

Manipulating the DOM is JavaScript’s role when developing websites and applications, and...

Dec 9, 2013 7 mins read

Vault.js, HTML5 (local/session) Web Storage API with automatic JSON support

Vault is a 0.6KB standalone HTML5 (local/session) Web Storage API with automatic...

Dec 7, 2013 4 mins read

Smarten your front-end workflow with @conditionizr, screencast on all the APIs

Who’s using Conditionizr? So far we’ve found some teams at Google, Sencha,...

Nov 26, 2013 1 min read

Apollo.js, standalone class manipulation API for HTML5 and legacy DOM

Apollo is a <1KB standalone DOM class manipulation API for adding, removing,...

Nov 9, 2013 4 mins read

Understanding Regular Expression matching with .test(), .match(), .exec(), .search() and .split()

Regular Expressions, often noted as RegEx or RegExp, are seen and used...

Oct 29, 2013 3 mins read

NoFi, detecting no WiFi, callbacks for offline states with HTML5

An HTML5 API buried inside the navigator Object called onLine is where...

Oct 28, 2013 2 mins read

Hacking SVG, traversing with ease - addClass, removeClass, toggleClass functions

Update: I’ve turned this into a small JavaScript module named Lunar and...

Oct 27, 2013 4 mins read

Conditionizr reloaded, what every developer has been waiting for

Wouldn’t it be ideal to target any browser, mobile browser, mobile device,...

Oct 24, 2013 2 mins read

The [data-js] API for behavioural-binding; stop using selectors in your JavaScript

Selectors in JavaScript are bad. The bridge between the DOM communicating with...

Sep 21, 2013 8 mins read

FireShell, fiercely quick front-end boilerplate and workflows

Built for the modern developer. For teams and the individual, encouraging a...

Sep 15, 2013 1 min read

Building out an HTML5 experience with Intels HTML5 Hub, for Rolling Stone magazine

Back in June this year, I was approached by Intel and Rolling...

Sep 10, 2013 1 min read

Echo.js, simple JavaScript image lazy loading

I’m currently working on a project for Intel’s HTML5 Hub in which...

Aug 11, 2013 6 mins read

Hacking the HTML5 <video> element with Suave.js

Suave, for elegant HTML5 videos (how they should have been). Suave was...

Jul 28, 2013 4 mins read

Using Grunt and Chrome Workspaces for in-browser development

After some great interest in why I ditched Sublime Text 2 for...

Jul 27, 2013 2 mins read

Psswrd, the show/hide password JavaScript plugin

Show/hide toggling for password inputs. Psswrd is a neat little script I’ve...

Jul 20, 2013 5 mins read

Is it time to drop jQuery? Essentials to learning JavaScript from a jQuery background

jQuery has been a godsend to pretty much all of us front-end...

Jun 25, 2013 11 mins read

Re-engineering the jBar plugin with Immediately-Invoked-Data-Expressions

Earlier this week I wrote about IIDE, Immediately-Invoked-Data-Expressions. Not an official term...

Jun 1, 2013 8 mins read

Revisiting SVG workflow for performance and progressive development with transparent data URIs

A few months ago I covered a range of SVG techniques that...

May 30, 2013 8 mins read

IIDE, Immediate-Invoked-Data-Expressions, data-init and using HTML5 to call your JavaScript/jQuery

There’s something that’s been at the back of my mind ever since...

May 28, 2013 5 mins read

Simple HTML5 data-* jQuery tabs, markup free and relative to their container for ultimate re-use

One of my favourite additions to the HTML5 spec is data-* attributes,...

May 20, 2013 5 mins read

Progressively enhancing HTML5 forms, creating a required attribute fallback with jQuery

HTML5 required attributes are a fantastic addition to the HTML5 spec, they...

May 20, 2013 14 mins read

data-js selectors, enhancing HTML5 development by separating CSS from JavaScript

I’ve started introducing a new concept into my JavaScript workflow and I...

Apr 19, 2013 7 mins read

Flaunt.js for stylish responsive navigations with nested click-to-reveal

Flaunt.js is a jQuery script that allows you to create a responsive,...

Mar 24, 2013 7 mins read

Introducing SuperBox the re-imagined lightbox gallery

SuperBox is a new jQuery plugin I’ve been composing over the last...

Mar 18, 2013 2 mins read

Storing data in the browser with the HTML5 localStorage API

HTML5 localStorage is an HTML5 API that allows us to save string...

Mar 14, 2013 4 mins read

Building an HTML5 responsive menu with media queries and JavaScript

Responsive navigation menus come in all different shapes and sizes, you might...

Mar 12, 2013 7 mins read

Writing the best CSS when building with HTML5

Let’s become HTML agnostic. HTML agnostic means to use as little HTML...

Mar 7, 2013 9 mins read

Attaching event handlers to dynamically created JavaScript elements

When working with JavaScript, you can sometimes need to create new elements...

Mar 5, 2013 5 mins read

Progressively enhanced SVG sprite icons

You may remember a while back, I coded up some nice CSS3...

Mar 1, 2013 5 mins read

Using HTML5 Geolocation to show current location with Google Maps API

Geolocation is one of the best new HTML5 APIs, so let’s see...

Feb 25, 2013 4 mins read

Getting started with Object-Orientated CSS (OOCSS), creating a button kit

Object-Orientated CSS, or OOCSS to the masses, is a method of structuring...

Feb 4, 2013 7 mins read

How to addClass, removeClass, toggleClass in JavaScript

jQuery is a pretty cool framework, it has it’s uses, it’s pretty...

Feb 2, 2013 6 mins read

Contact forms; the HTML5 way. Semantics, inputs, data attributes, javascript feature detection

Forms are often one of the last quick-finishes to a website, so...

Jan 26, 2013 11 mins read

Fluid and responsive YouTube and Vimeo videos with fluidvids.js

One of the major drawbacks to responsive design is managing external plugins/resources,...

Jan 22, 2013 5 mins read

Browser-based responsive development tool, viewport resizing, custom widths

Designing in the browser is increasingly popular, especially with responsive websites. Having...

Jan 18, 2013 3 mins read

Creating a responsive, dynamic mobile select navigation from pure javascript

Here’s how to create a select menu from an existing menu using...

Jan 1, 2013 7 mins read

Meet Conditionizr, the conditional free legacy, retina, script and style loader

After much debate about a way forward past conditional statements, retina detection,...

Dec 17, 2012 5 mins read

ViewPort dynamic width calculation, retina and pixel ratio JavaScript widget

Dynamically adjusted screen dimensions, retina detection and device pixel ratio. When working...

Dec 16, 2012 2 mins read

imgShufflr, randomised inline and CSS background images plugin

imgShufflr is quick and lightweight plugin for generating a random image upon...

Dec 6, 2012 3 mins read

bounceThis plugin, mimics CSS3 keyframes bouncing header animations

We all love those slick animated drop-down headers that gracefully drop into...

Dec 3, 2012 4 mins read

Flawless clickable drop-down navigation

In this tutorial I’ll show you how to create a superb clickable...

Nov 25, 2012 3 mins read

Mastering SVG use for a retina web, fallbacks with PNG script

SVGs (Scalable Vector Graphics) are the future graphics format of the web,...

Nov 17, 2012 6 mins read

Fluid-first: creating a future proof fluid and responsive website

Fluid-first is a way of thinking, then designing, then coding. It’s not...

Nov 14, 2012 7 mins read

jResize Plugin, for one window responsive development

jResize is a responsive web development tool, built in jQuery to assist...

Oct 28, 2012 4 mins read

HTML5 Blank, Rapid WordPress Theme Development

HTML5 Blank Theme is an industry leading WordPress shell, recognised by Adobe,...

Sep 16, 2012 1 min read

HTML5 and jQuery Super Simple Drop Down Nav

How hard is it to find a decent and lightweight navigation that...

Sep 5, 2012 3 mins read

Email address Spam Protection with JavaScript

This is a simple code snippet to prevent any spambots crawling your...

Aug 18, 2012 1 min read

jBar Plugin, the jQuery call to action bar

jBar is a simple and lightweight jQuery notification bar that’s been revisited...

Aug 4, 2012 2 mins read

Thoughts on progressive and relative images

Image quality and size have been high on my thinking list recently,...

Jul 2, 2012 3 mins read

Create a simple jQuery hover call-to-action box

Here’s a quick and easy tutorial on how to create a small...

Jun 4, 2012 1 min read

How to utilise Google Analytics onClick Tracking

Collecting data on how web users scurry through our websites is a...

Apr 30, 2012 3 mins read

Using CSS3 text-selection to override default highlight colour

Add something different to your website by overriding the default text selection...

Apr 9, 2012 1 min read