Just let Google answer this question:
Google understands the following meta
tags (and related items):
[…]
<meta http-equiv="refresh" content="...;url=..." />
This meta
tag sends the user to a new URL after
a certain amount of time, and is
sometimes used as a simple form of
redirection. However, it is not
supported by all browsers and can be
confusing to the user. The W3C
recommends that this tag not be
used. We recommend using a
server-side 301 redirect instead.
Yahoo used to have a message about meta
redirects on its pages, but I can't find it anymore. It's quoted in this older article:
META Refresh: <meta
http-equiv="refresh" content=…>
is
recognized as a 301 if it specifies
little or no delay or as a 302 if it
specifies noticeable delay.
That said, I agree with others that it's best to use a 301 or 302 redirect.
However, this works regardless if JavaScript is enabled or not. To do a redirect using JavaScript, you can issue
window.location = "url-to-navigate-to";
in a script. But notice this really isn't followed by search engines, as they don't interpret JavaScript and just 'read' the page as is.