javascript中函数作用域之”提升“
来源:互联网 发布:信誉源码 编辑:程序博客网 时间:2024/06/10 07:17
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);
结果:
0 0
- javascript中函数作用域之”提升“
- JavaScript作用域和作用域链/变量,函数提升
- 浅谈JavaScript 函数作用域当中的“提升”现象
- 浅谈JavaScript 函数作用域当中的“提升”现象
- javaScript函数提升(Hoisting)及作用域(Scoping)
- 作用域之提升
- JavaScript 变量提升 作用域
- JavaScript之函数和this作用域
- JavaScript之函数与作用域
- JavaScript基础之函数变量作用域
- JavaScript中函数的作用域链
- Javascript中函数和作用域
- javascript作用域和声明提升
- Javascript作用域和变量提升
- Javascript 作用域和变量提升
- Javascript 作用域和变量提升
- Javascript作用域和变量提升
- Javascript作用域和变量提升
- 2015年全国大学生电子设计竞赛专题系列之综合测评-2013年Multisim仿真电路参考方案
- HDU3718Similarity(KM最大匹配)
- Java- 基础类
- 2015-0831-osg学习历程5
- 还是上边一个问题
- javascript中函数作用域之”提升“
- linux下最常用的命令
- NSMutableString可变字符串的定义及常用方法
- HDU 5119 Happy Matt Friends(DP)
- Testlink实验心得
- 最简单的单身模式
- Codeforces 166E Tetrahedron
- 【工具系列一】——Tomcat的基本配置
- 【图像配准】基于灰度的模板匹配算法(三):划分强度一致法(PIU)