全局变量未定义在下面的 JavaScript 函数中



我有一些代码基本上是这样的:

TestFunction();
const pi = 3.14;
function TestFunction()
{
alert("pi="+pi);
}

代码失败,因为"pi"未定义。我挠了很久,但后来意识到代码不是线性解析的。调用函数时,函数"TestFunction"被解析,但常量尚未解析。

这发生在Safari和Chrome上。我不知道是否所有浏览器都会以相同的方式解析。它可能适用于某些人。

在第一次调用函数之前移动常量的定义解决了这个问题。

const pi = 3.14;
TestFunction();
function TestFunction()
{
alert("pi="+pi);
}

最新更新