Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

131 lines (115 sloc) 2.232 kb

The Art Of JavaScript

Introduction

  • About Me
  • Assumptions
  • What this presentation will cover
    • The Basic Stuff
    • Arrays
    • Operators
    • Objects
    • Functions * Constructors * Closures * Async Behaviors & Potential Pitfalls
    • Scope
    • Inheritance
      • Design Patterns
        • Namespacing
        • Module
        • Pub / Sub
        • Options
        • Prototype
    • Giveaway
  • What this presentation will NOT Cover
    • DOM
    • frameworks

About Me

  • Work History
  • Open Source Work
  • JavaScript Work

Variables

  • Default Scoping
  • Numbers
    • ParseInt
    • Number()
  • NaN

Arrays

  • Properties
  • new Array
  • Literals
  • passed by reference vs by value
  • Methods
    • join
    • pop
    • shift
    • splice
    • slice
    • use "split" to turn a string into an array
    • Arrays don't optimize like you think they would. (Passing array[0] actually gets converted to array["0"]

Operators

  • Comparison
  • == vs ===
  • Truthy / Falsy
  • Logical

Loops

  • for
  • while
  • for-in
  • best practices

Objects

  • introduction
  • accessing properties
  • hasOwnProperty

Scope & This

  • this
  • call & apply
  • new keyword
  • functions
  • nested functions
    • lexical scoping

Functions

  • introduction
  • compare JS & CF
  • statements vs expressions
  • arguments
    • type checking
  • closures
    • example (not a closure)
    • example (is a closure)
  • variable and function hoisting

Inheritance

  • constructor
  • prototype
  • augmenting native constructor functions

Common Design Patterns

  • module
    • revealing module
  • observer
    • commonly found in pub/sub libraries
  • prototype
    • ECMAScript5 - use Object.create (IE 9+ native)
    • Can shim (as shown in Crockford's The Good Parts)
  • decorator
  • Addi Osmani's Book

Unit Testing

  • very brief intro
  • TDD vs BDD
  • qUnit vs jasmine
  • basics
    • setup qUnit / jasmine
    • creating your tests (use examples from the preso)
  • dom objects (ok I lied in the assumptions) *qUnit *jasmine

Resources

  • MDN
  • jsLint
  • jsFiddle
  • Eloquent JavaScript
  • JavaScript Koans
  • JavaScript Zen Garden
  • JSMentors Google Group
  • JSC for mac users
  • Crockford's JavaScript: The Good Parts
  • Cody Lindley's Javascript Enlightment

Giveaway

Jump to Line
Something went wrong with that request. Please try again.