JavaScript中变量提升机制示例详解(2)

function foo(){ console.log(b); // undefined b(); //TypeError: b is not a function var a = true; if(a){ function b(){ console.log(2) } //下面这段代码和上面的结果一样 // var b = function(){ // console.log(2) // } } //b() --> 这里会被执行 } foo()

从上面看上去,b是undefined,证明这个变量还是有的,只不过它并不是一个函数,这情况和用函数表达式差不多。

总结

提升分为函数声明提升和变量声明提升

声明变量用var,声明函数用function

变量提升会将变量提升到自己所在作用域的顶部

函数表达式不存在提升的机制。

函数声明和变量声明同时声明同一个标识符时,函数声明优先

多个函数声明同一个标识符时,最后一个声明覆盖先前的声明

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f2402c18f306ebfad711243b8f48c8d1.html