Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:为什么内部函数中没有定义变量,即使变量在全局函数中声明和赋值_Javascript - Fatal编程技术网

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)-->未定义…}