JS中定义函数的两种方式哪个优先级高·引出变量和函数声明的运行顺序
在JS中如果同时用变量和函数声明相同名字的函数,谁会先执行呢?
function foo() {
alert(2);
}
var foo = function() {
alert(1);
}
foo();
执行一下会发现alert弹出1,为什么是这样的呢?下面解释下原因。
因为在代码解析运行期间,变量的声明被提到当前作用域的最顶端,其次是函数的声明,所以就变成了:
var foo;
function foo() {
alert(2);
}
foo = function() {
alert(1);
}
这样后面的声明就把前面的声明覆盖了,所以调用foo()时执行了后面的函数内容
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。