javascriptの中でvarプラスしない問題


jsは変数を宣言する時にvarをプラスしないことができます.個人的には大域で変数をプラスしないとvarは同じであるべきだと理解しています.     
function f(){
     var a = "     ";
     b = "    ";
}
f();
alert("b:" + b);//    
alert("a:" + a);// a     
 
この時bはwindowの対象となる属性です.この書き方は以下のコードと同じです.
書き記す
var b;
function f(){
b=「グローバル変数」
)
f()
alert(window.b)