今更ながら

window.location

document.location

location.href

のどれを使えばちゃんとURLを取得してアレコレできるのかよくわからないので調べた。

・window.location
”現在表示しているアドレス(URL)に関する情報を持つオブジェクトです。”
ってことはオブジェクトが返ってくるだけでURL自体を取得できるわけじゃない。プロパティ指定してホスト名とかプロトコルとかのURLの各部分を返すみたい。

例:
location.protocol → protocol: "http:"
location.hostname → hostname: "www.yyy.zzz"

なので

var host = window.location.hostname;
alert(host.substring(2,8));

だと”hatena”が返ってくるけど

var host = window.location;
alert(host.substring(2,8));

だとエラーで動かない。
オブジェクトは返ってくるけどプロパティが指定されてないから。

・document.location
調べたけどよくわからんかった><)

・location.href
”現在表示しているページのアドレス(URL)を示す文字列です。”
文字列なので
var url = location.href;
alert(url.indexOf("start="));

などとして文字列メソッドの引数として使える。
なのでURL自体をどうにかしたかったら

location.href

を使うのがよい。

参考:
http://www.tohoho-web.com/js/location.htm