函数声明是否在变量声明之前提升?

问题描述 投票:0回答:1

如果函数声明在变量声明之前被提升。在这种情况下,为什么我得到函数定义而不是未定义。

function a(){}
var a;
console.log(a); // ƒ a(){}

我期望变量声明将覆盖函数声明并变为未定义

javascript var hoisting
1个回答
0
投票

因为您没有为变量赋值,并且在提升 JS 中为变量放置了未定义的值。 undefined 不会覆盖任何值,这就是为什么你得到一个函数。

function a(){}
var a=1;
console.log(a); // result will be 1
© www.soinside.com 2019 - 2024. All rights reserved.