JSFoo 2014

JavaScript as the centerpiece of a complex web stack

Kushagra Gour

@chinchang

Learning JS concepts/techniques by implementing jQuery

Submitted Aug 25, 2014

This is a “Re-implement and Learn” workshop.

The aim of this workshop is to have a list of some concepts and common techniques used in JavaScript and then learn them by implementing parts of an existing library. For this session, we’ll be implementing features of jQuery to understand JavaScript more closely.

Understanding the concepts implemented in this workshop will enable you to write code which is:

  1. More Clean
  2. More Manageable
  3. More Testable

Outline

The workshop will be around understanding following concepts and techniques by actually implementing each of them one by one:

Following point follow the syntax: <Concept we’ll learn> - <What we’ll implement>

  1. Prototypes: jQuery core

  2. Use of ‘this’: jQuery core

  3. Callbacks: $.each

  4. Chaining: $.css

  5. Function overloading: $.css (getter only)

  6. Function context: $.bind

  7. Partials: $.ajax and $.json

  8. Apply what we learnt: $.debounce

Note: This workshop isn’t targeted towards implementing jQuery completely and won’t focus on its cross-browser feature implementations. Only implementing functionalities required to understand the above mentioned concepts will be the focus of this workshop.

Requirements

Good news! You don’t need anything particular installed on your system. If you have a descent browser (no IE) and a code editor on your machine, we should be good. No need to install node, grunt etc.

Speaker bio

Kushagra is a Front-end developer at Wingify. He has been playing with web technologies for over 4 years now with experience in AngularJS, SASS, Grunt etc and has authored several articles and tutorials on topics ranging from CSS to Git to Game development. He tweets with the handle @chinchang457

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more