广州双城热恋创意文化传播有限公司

现在的位置: 主页 > 公司荣誉 > 文章列表

文章正文

javascript中函数作用域之”提升“

作者:广州双城热恋创意文化传播有限公司 来源:www.666loveyou.com 发布时间:2017-09-04 13:31:09
javascript中函数作用域之”提升“ javascript中函数作用域之变量提升

当我们在函数内部用关键字var声明一个变量的时候,此变量的作用域限制在当前函数。

提升:在一个作用域内部,不管一个变量用var声明的位置在哪里,这个变量属于当前整个作用域,并且在当前作用域的任何位置都可以访问它。在javascript中,这种行为/现象称之为“提升”,即一个变量在一个作用域的任何位置用var声明,javascript引擎都会把这些用var声明的变量“移动”到当前作用域的开始处。

谈到javascript这种“提升”现象,不得不想到大学时代学习c语言的时候,老牌C语言编译器里,C语言中,变量只能在函数的开头处声明和定义,在函数里要用到的变量必须要在开头处声明定义,声明定义的前面不能有任何其他非声明定义的语句。自从c++语言打破了这个限制,c新编译器也没有这个硬性限制了。

依赖javascript这种“变量提升”机制并不是一个好主意。“函数提升”我们一般用的比较多。

所以,“函数提升”放心用,当在一个作用域内使用变量的地方位于声明变量的地发之前,而带来的变量提升“现象,我们最好不要用了。

提升现象代码例子:

var a = 2; foo(); function foo(){ a = 3; console.log(a); var a; } console.log(a);
结果:

\

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉SEO http://wuhan.raoyu.net


COPYRIGHT © 2015 广州双城热恋创意文化传播有限公司 ALL RIGHTS RESERVED.
网站地图 技术支持:肥猫科技
精彩专题:网站建设
购买本站友情链接、项目合作请联系客服QQ:2500-38-100