Today we'll look at raster graphics and vector graphics. Here is a small guide.
In addition to Canvas and SVG, there is also WebGL which has a few extra capabilities which are very handy. You can make use of fragment shaders for visual effects (and even GPU computation).
You can mix the raster and vector together with enough work!
Also, there are lots of helper libraries, including this one which enables .transition() on Canvas.