JavaScript 变量声明提前
Posted winlily
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 变量声明提前相关的知识,希望对你有一定的参考价值。
《javascript权威指南》中指出:JavaScript变量在声明之前已经可用,JavaScript的这个特性被非正式的称为声明提前(hoisting),即JavaScript函数中声明的所有变量(但不涉及赋值)都被“提前”至函数的顶部。下面我们从实例中看看:
实例1:
var aa = "test"; function myFunc(){ console.log(\'aa值为:\'+aa); var aa = "TEST"; } myFunc();
调用函数myFunc() 打印的结果为 undefined ,因为函数作用域的特性,函数中申明的变量(但不涉及赋值)被“提前”至函数的顶部,所以局部变量在整个函数体始终有效,局部变量aa会覆盖掉全局变量aa,因此打印的结果为 undefined ,其运行过程等价于实例2,如下:
实例2 :
var aa = "test"; function myFunc(){ var aa; console.log(\'aa值为:\'+aa); aa = "TEST"; } myFunc();
运行结果如下:
以上是关于JavaScript 变量声明提前的主要内容,如果未能解决你的问题,请参考以下文章