1 / 16
文档名称:

JS作用域,消息队列.ppt

格式:ppt   大小:91KB   页数:16页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

JS作用域,消息队列.ppt

上传人:sxlw2014 2020/5/11 文件大小:91 KB

下载得到文件列表

JS作用域,消息队列.ppt

相关文档

文档介绍

文档介绍:JavaScript的作用域与消息队列JavaScript的作用域JavaScript的变量作用域是基于其特有的作用域链的。JavaScript没有块级作用域。函数中声明的变量在整个函数中都有定义。JavaScript的作用域变量的声明  JS中变量申明分显式申明和隐式申明。vari=100;//显式申明i=100;//隐式申明如果用隐式申明,那么就覆盖了全局变量iJavaScript的作用域链<scripttype="text/javascript">varrain=1;   functionrainman(){   varman=2;   functioninner();{   varinnerVar=4;   alert(rain);   }   inner();//调用inner函数  }   rainman();//调用rainman函数</script>作用域链:JavaScript需要查询一个变量x时,首先会查找作用域链的第一个对象,如果以第一个对象没有定义x变量,JavaScript会继续查找有没有定义x变量,如果第二个对象没有定义则会继续查找,以此类推。JavaScript的作用域链函数体内部,局部变量的优先级比同名的全局变量高<scripttype="text/javascript">   varrain=1;//定义全局变量rain   functioncheck(){   varrain=100;//定义局部变量rain   alert(rain);   }   check();   alert(rain);</script>JavaScript的作用域链JavaScript没有块级作用域。<scripttype="text/javascript">   functionrainman(){   //rainman函数体内存在三个局部变量ijk   vari=0;   if(1){   varj=0;   for(vark=0;k<3;k++){   alert(k);   }   alert(k); }   alert(j);   }</script>i、j、k作用域是相同的,他们在整个rain函数体内都是全局的。JavaScript的作用域链函数中声明的变量在整个函数中都有定义<scripttype="text/javascript"> functionrain(){   varx=1;   functionman(){   x=100;   }   man();//调用man   alert(x);   }   rain();//调用rain</script>上面得代码说明了,变量x在整个rain函数体内都可以使用,并可以重新赋值JavaScript的作用域链<scripttype="text/javascript">   varx=1;   functionrain(){   alert(x);   varx='rain-man';   alert(x); }   rain();</script>是由于在函数rain内局部变量x在整个函数体内都有定义(varx=‘rain-man’,进行了声明),所以在整个rain函数体内隐藏了同名的全局变量x。这里之所以会弹出‘undefined’是因为,第一个执行alert(x)时,局部变量x仍未被初始化。所以上面的rain函数等同于下面的函数:functionrain(){varx;alert(x);x='rain-man';alert(x);}(预编译)JavaScript的作用域链未使用var关键字定义的变量都是全局变量。<scripttype="text/javascript">   functionrain(){   x=100;//声明了全局变量x并进行赋值   }   rain();   alert(x);</script>JavaScript的作用域链全局变量都是window对象的属性<scripttype="text/javascript">   varx=100;   alert();//弹出100   alert(x);</script>等同于下面的代码<scripttype="text/javascript">   =100;   alert();   alert(x)</script>