If you are for some reason doing computing intensive stuff in javascript, you must remember those things (*and read David Mandelin's Know Your Engines: How to Make Your JavaScript Fast presentation - PDF, where he describes this in more details*):
inline everything you can.
function calls are very expensive
object access is expensive
polymorphism can cost you performance, your variables and arguments should always hold only one data type.
Math object is not especially slow, but you will not find distance()
function there anyway, and accessing its methods from closure via Math.method()
calls is, inefficient.
so sqrt
is, of course, worse than x*x
, custom random
function might be better for you, Pi should be cached in loops, min
and max
should probably be avoided as well, no idea about trigonometry and logarithms speed.
P.S.: You can do things like ((x >= 0 ? x : -x) + 0.5) >> 0
, to replace Math.ceil(Math.abs())
, but remember - when i say "intensive" - i'm talking about number crunching, data processing, physics, graphics and things like that. For normal JavaScript sites or RIAs - you should not do stuff i am suggesting here. Also, most of the speed hacks have their side effects