变量没有在函数内声明或者声明的时候没有带var就是全局变量,拥有全局作用域,window对象的所有属性拥有全局作用域;在代码任何地方都可以访问,函数内部声明并且以var修饰的变量就是局部变量,只能在函数体内使用,函数的参数虽然没有使用var但仍然是局部变量。
例如:
var a=3; //全局变量 function fn(b){ //局部变量 c=2; //全局变量 var d=5; //局部变量 function subFn(){ var e=d; //父函数的局部变量对子函数可见 for(var i=0;i<3;i++){ console.write(i); } alert(i);//3, 在for循环内声明,循环外function内仍然可见,没有块作用域 } } alert(c); //在function内声明但不带var修饰,仍然是全局变量