Javascript:为什么内部函数中没有定义变量,即使变量在全局函数中声明和赋值
Javascript:为什么内部函数中没有定义变量,即使变量在全局函数中声明和赋值,javascript,Javascript,设a=1; 函数外部(){ 控制台日志(a); 函数内部(){ 控制台日志(a); var a=3; } 内(); 控制台日志(a); } 外部()这是因为Javascript 您的internal()函数等于- function inner() { var a; console.log(a); a = 3; } 这显然会在控制台中输出未定义的。这与作用域有关,下面是一种方法。。 设a=1; 函数外部(){ 控制台日志(a); 让newA=a 函数内部(){ conso
设a=1;
函数外部(){
控制台日志(a);
函数内部(){
控制台日志(a);
var a=3;
}
内();
控制台日志(a);
}
外部()代码>这是因为Javascript
您的internal()
函数等于-
function inner() {
var a;
console.log(a);
a = 3;
}
这显然会在控制台中输出未定义的。这与作用域有关,下面是一种方法。。
设a=1;
函数外部(){
控制台日志(a);
让newA=a
函数内部(){
console.log(newA);
}
内();
控制台日志(a);
}
外部()代码>变量声明被挂起。内部函数等价于var a;控制台日志(a);a=3代码><代码>变量
声明用未定义
初始化。如果您使用let
,您将得到一个实际的错误(从而使您意识到自己犯了错误)。但是外部函数呢?它正确地打印出外部函数输出全局a
。根据您的回答,外部函数中的“a”不应该打印出未定义的吗?@facVV:外部函数不包含a
的变量声明。设a=1;函数outer(){var a;console.log(a)-->未定义…}