There are some differences.
In global scope, there is absolutely no difference between them, but in other cases you might get in trouble:
function () {
var location = { 'href' : '123' } ;
console.log(window.location.href) // actual url
console.log(location.href) // '123'
}
This stems from the fact that if you write location without prefixing it with window, it will go up through every scope to find a variable named location. Eventually it will find it in window, unless another scope declared one as well. Obviously the reverse is true as well:
function () {
var window = { 'location' : { 'href': '123' } };
console.log(window.location.href) // '123'
console.log(location.href) // actual url
}
I for one prefer to prefix the global variables with window because that way i immediately know they are global and also because when i find a global variable that is not prefixed with window, i know it is a typo missing a var, but that is purely personal preference.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…