美文网首页
JavaScript中变量和函数声明的提升

JavaScript中变量和函数声明的提升

作者: DaZzling_佳 | 来源:发表于2017-11-08 12:34 被阅读0次

js代码执行前,会有一个预编译过程,该过程主要进行以下操作:语法检查,和声明提升。

声明提升,又分为两部分:变量声明提升和函数声明提升。

声明提升的主要表现:先使用后声明。

变量声明提升:在当前代码块执行前,所有变量声明会在预编译阶段提前完成,所有变量被赋值为undefined,可以理解为变量提前创建。

console.log(num);//undefined

var num = 100;

/*以上代码可以理解为:

var num;

console.log(num);

num = 100;

*/

函数声明提升:函数对象在预编译阶段,已经完全创建完毕,可以随时使用。函数声明提升高于变量声明。

fn();

 function fn(){

     console.log("我被提前创建完成!")//我被提前创建完成!

}

//同时声明变量a和函数a

vara;

functiona() {}

alert(typeofa);//显示的是"function",初步证明function的优先级高于var。

//先声明函数后声明变量,证明上边的例子不是function覆盖了变量

functiona() {}

vara;

alert(typeofa);//显示的仍是"function",而不是"undefined",即function的优先级高于var。

//声明了变量的同时赋值

functiona() {}

vara = 1;

alert(typeofa);//number,此时不是function了。

//说明:"var a=1"相当于"var a;a=1",即先声明,后赋值,"a=1"相当于把a重新赋值了,自然就是number!

注意:if逻辑中声明的函数,不参与函数声明提升,但是参与变量声明提升;

相关文章

  • 变量提升 & this指向

    变量提升 JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。JavaScript 中,变量可以在...

  • var与let、const的区别

    什么是变量提升?JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。JavaScript 中,变量...

  • JavaScript 变量提升

    JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。JavaScript 中,变量可以在使用后声明...

  • JavaScript 变量提升

    JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。JavaScript 中,变量可以在使用后声明...

  • 作用域

    变量声明提升 在 JavaScript 中,函数声明(function aa(){})与变量声明(var)经常被 ...

  • js的提升

    JavaScript 会将函数声明和变量声明提升到当前作用域的顶部。变量赋值不会提升。在脚本的顶部声明函数和变量,...

  • ES5中认知上的一些遗漏点

    1. JavaScript 中对变量和函数声明的“提前(hoist) JavaScript 中对变量和函数声明的“...

  • runoob js第六天

    JavaScript 变量提升 变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。变量可...

  • js变量提升

    JavaScript中奇怪的一点是你可以在变量和函数声明之前使用它们。就好像是变量声明和函数声明被 提升 了代...

  • 变量提升(mdn自学)

    变量提升是变量和函数的声明编译阶段被放入内存中JavaScript 在执行任何代码段之前,将函数声明放入内存中的优...

网友评论

      本文标题:JavaScript中变量和函数声明的提升

      本文链接:https://www.haomeiwen.com/subject/lllemxtx.html