Javascript变量声明提升问题分析(提升)

1。变量声明的推广



提升所有美丽{所有}



举起,举起



将……吊起,升起(起重机现在分词)

先看栗子


VaR CC =你好;
函数(){
console.log(CC);
VaR CC =世界;
console.log(CC);
}
(富);
console.log(CC);


未定义的,‘你好',将出口在这里



这里有两个主要的知识点:

1、诉讼范围



2。变量声明的推广



Javascript是一种解释语言,在解释器的代码(如Chrome V8引擎)的执行环境中,会有一个预分析过程,这将是最前面的变量声明和函数声明到当前的作用域,这种行为被称为语句提升(提升)。

让我们看一下上面的例子。该代码具有两个级别的范围、全局作用域和函数作用域,在预解析过程中,将变量中的变量声明提升到函数作用域的前面,这样代码就变成了这种方式。


VaR CC =你好;
函数(){
VaR的CC;
console.log(CC);
CC =世界;
console.log(CC);
}
(富);
console.log(CC);


当执行第一个日志时,变量cc声明并没有赋值,所以打印是未定义的。

两。功能声明的推广



声明函数的方法有两种:函数声明和函数表达式。


函数声明
函数(a,b){
返回A+;
}
函数
函数(a,b){
返回A+;
}


当解析器将数据加载到执行环境中时,函数声明和函数表达式不完全相同,解析器将带头读取函数声明,并在执行任何代码之前将其声明为可用。至于函数表达式,有必要等到解析器执行到它所在的代码行,这将真正被解释和执行。

当然,也可以同时使用函数声明和表达式,如var A(b =函数){,结果是函数表达式B的作用将被自动忽略,所以只会增强变量的效果。

总结

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,你可以留言。