随后的javascript函数中未定义全局变量

时间:2018-08-21 19:59:41

标签: javascript parsing variables scope

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

TestFunction();
const pi = 3.14;

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

由于未定义'pi',因此代码失败。我挠了很长时间,但后来意识到代码不是线性解析的。调用该函数时,已解析函数“ TestFunction”,但尚未解析该常数。

这是在Safari和Chrome中发生的。我不知道所有的浏览器是否都将以相同的方式进行解析。可能对某些人有用。

1 个答案:

答案 0 :(得分:1)

在第一次调用该函数之前移动常量的定义即可解决问题。

const pi = 3.14;

TestFunction();

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