At minute 48:04, Lilli Thompson gives an excellent overview on the requestAnimationFrame function.
Also, check out my requestAnimFrame gist for a code sample in which setInterval, clearInterval, setTimeout, and clearTimeout functions use requestAnimationFrame function whenever possible for performance purposes.
You can also check out a working example on my projectile.js GitHub repo.