Javascriptの変数宣言時、varの有無で挙動はどのように変わるか。

■var有り

宣言された関数内にてローカルスコープを持つ変数として振舞う。
また、DontDelete属性を持つためdelete演算子による削除が出来ない。

■var無し

関数内部での宣言であってもグローバルオブジェクトのメンバ変数として振舞う。

 

これは挙動をちゃんと理解してないとどっぷりはまるレベルの違い。
何か特別必要じゃない限りvar宣言は常にしておくでFAかな。