标签:function 形式 表达式 strong 开始 -- script 方式 ora
变量提升和函数提升:
就是将变量声明或者函数全部代码提升到当前作用域(全局作用域或函数作用域)最开始的部分。
JavaScript中函数域为最小域范围;for循环、while循环、if语句、switch语句的“{}”不是作用域。
一.变量提升:
使用var声明的变量,会提前到当前作用域的开始的位置,被声明。原位赋值。
1.所指的形式:var a = "提升";(必须有关键字“var”)
2.提升的方式:将“var a”,提升到当前作用域的顶部,a = "提升",在原型定义的位置。
3.具体代码:
eg:
二.函数提升
1.函数提升所指的形式:function fn(){......}(必须是函数声明的形式,不能是函数表达式的形式)。
2.函数提升的方式:将“function fn(){......}”整个函数声明代码块提升到当前作用域的顶部,
原先位置以不存在该代码。
3.所有使用function声明的函数,都会整体提升,只要当前作用域内声明了数
在任何位置都可以使用,赋值式创建函数,提升的声明,不是。
当函数和变量重名,变量的提升更高,函数的提升在变量的下面,
导致值函数生效
var a;
function a(){}
console.log(a);
a = 10;
eg:
function fn(){
上式提升后等同于下式
标签:function 形式 表达式 strong 开始 -- script 方式 ora
原文地址:https://www.cnblogs.com/SYJ1205/p/11922416.html