javascript中的变量声明小例

/ 0评 / 0

在javascript中,开发者可以在任何地方声明变量,随便在哪里都可以var一个变量出来。这种自由,有时候其实是一个坑。如何避免这种坑,开发者需要了解清楚变量是如何声明的。
在javascript中,无论变量是否会被执行,所有的var都会被提前到该逻辑函数的顶部执行。举个栗子:

function foo() {
    var result = 10 + value;
    var value = 10;
    console.log(result);
}
foo() // NaN

为什么result会是NaN呢?主要是因为javascript会把以上代码解释成这样子

function foo() {
    var result;
    var value;
    result = 10 + value;
    value = 10;
    console.log(result);
}