我有一些代码基本上是这样的:
TestFunction();
const pi = 3.14;
function TestFunction()
{
alert("pi="+pi);
}
代码失败,因为"pi"未定义。我挠了很久,但后来意识到代码不是线性解析的。调用函数时,函数"TestFunction"被解析,但常量尚未解析。
这发生在Safari和Chrome上。我不知道是否所有浏览器都会以相同的方式解析。它可能适用于某些人。
在第一次调用函数之前移动常量的定义解决了这个问题。
const pi = 3.14;
TestFunction();
function TestFunction()
{
alert("pi="+pi);
}