有人可以向我解释为什么db在控制台中显示为未定义,给出以下代码:
function connect(){
var db="Connected to";
logConnection();
}
function logConnection(){
console.log(db);
}
connect();
这显然是一个简化的例子,但实际上我正在使用nodeJS和mongodb。 db
变量实际上是与我想要执行查询的数据库的连接。如果我能更详细地理解这一点,那将对我的调试有很大帮助。
答案 0 :(得分:2)
变量“db”在“connect”中定义,而不是“logConnection”。 JavaScript中的变量是词法范围,这意味着重要的是函数内部的静态嵌套,而不是运行时的动态关系,因为一个函数调用另一个函数。