JavaScript作用域查询

JavaScript Scope Query?

本文关键字:查询 作用域 JavaScript      更新时间:2023-09-26
var my_var = 3;
function doIt() {
    console.log( my_var ); //why undefined?
    var my_var = 7;
    return ++my_var; 
} 
doIt(); // returns 8 as expected 
为什么my_var返回undefined而不是全局值(3)?

您将my_var定义为函数内部的局部变量。JavaScript将变量提升到作用域的顶部,所以你的函数实际上是这样的:

function doIt() {
    var my_var;
    console.log( my_var );
    my_var = 7;
    return ++my_var; 
}