windows属性和全部变量、函数的关系

      1、关于定义变量

          js中,在所有函数外部定义的变量为全局变量。

          在函数内部定义变量时,需要用var来标识局部变量,如果不使用var直接定义,则会被js默认为一个全局变量。当存在与之同名的全局变量时,则会出现出乎意料的结果。因此希望大家在定义时,务必使用var已保证程序的规范性。

      2、windows属性和全部变量、函数的关系

          可以将windows看做一个对象,而它下面的全局变量,以及一级的函数,都可以看做是windows的属性。

window.onload = function()
{
      alert(a);  //页面报错

      alert(window.a);//返回undefined

}

          如上述代码所示,a和window.a指向的是同一个变量(虽然没有定义),但是两者之间的区别在于:当调用一个不存在的变量时,页面会直接报错;而调用一个不存在的属性时,会返回undefined。

         关于这个属性,将在今后编写js代码的过程当中反复被验证。尤其是在处理浏览器兼容性问题,利用if函数在window下判断哪个方法在该浏览器中存在时,为避免页面报错,可直接在方法前加上"windows."  。

原文地址:https://www.cnblogs.com/May-study/p/6138572.html