LearnJS is a project mainly written in JavaScript, it's free.
Learning JavaScript by writing small pieces of code. Implementations of one small problem at a time.