Use a framework like jQuery. You won't learn anything particularly insightful when fighting against the somewhat baroque, inconsistent, and incompatible APIs that are jQuery abstracts (or any other decent framework). You will continue to use the same language, instead you will use more convenient and portable APIs.
As you become more experienced, you will find situations that your infrastructure does not cover, or in which you need to expand your structure. At this point, you can start working with the actual APIs that browsers view, as well as the incompatibilities and inconsistencies that are associated with them.
For very simple noodling around with <canvas> you can often access raw JS without too much trouble, since browsers that support canvas also tend to be more compatible with each other (although the APIs will be much clunkier than what provides jQuery). Of course, you can use excanvas for IE <canvas> emulation, after which you will again have to deal with incompatibility.
source share