Javascript初学者-函数中未定义的变量

Javascript初学者-函数中未定义的变量,javascript,Javascript,我在一些代码上遇到了一些问题。我想说: aaa bbb ccc ddd 但它说: 未定义的bbb未定义的ddd 在aaa函数之外定义的test3中,如何使这项工作正常 var test1; var test2; var test3 = test1 + ' bbb ' + test2 + ' ddd'; var aaa = function() { var test1 = "aaa"; var test2 = "ccc"; alert(test3); } aaa(); 您需要将该

我在一些代码上遇到了一些问题。我想说:

aaa bbb ccc ddd

但它说:

未定义的bbb未定义的ddd

在aaa函数之外定义的test3中,如何使这项工作正常

var test1;
var test2;
var test3 = test1 + ' bbb ' + test2 + ' ddd';

var aaa = function() {
  var test1 = "aaa";
  var test2 = "ccc";
  alert(test3);
}

aaa();

您需要将该值重新分配给
test3


一些相关阅读:

test3
不知道
test1
test2
已经赋值,你必须重新分配变量。

你需要先分配
test1
test2
的值,然后再使用它们给
test3
赋值。否则,它们在您执行作业时未定义<当您更新
test1
test2
时,code>test3不会动态更新

var test3;    

var aaa = function() {
  var test1 = "aaa";
  var test2 = "ccc";
  test3 = test1 + ' bbb ' + test2 + ' ddd'
  alert(test3);
}

aaa();
如果需要
test3
提供动态更新的值,可以将其设置为函数:

var test3 = function (test1, test2) {
    return test1 + ' bbb ' + test2 + ' ddd';
};

var aaa = function () {
    alert(test3('aaa', 'bbb'));
};

aaa();  
您可以在外部定义它,但需要在设置
test1
test2
后进行设置:

var test1、test2、test3;
var aaa=函数(){
test1=“aaa”;
test2=“ccc”;
test3=test1+‘bbb’+test2+‘ddd’;
警报(test3);
}

aaa()更好的解决方案是使用一个设置这些变量的函数。这将是一些初学者友好的代码:

var test1 = setVar('aaa');
var test2 = setVar('ccc');
var test3 = test1 + ' bbb ' + test2 + ' ddd';

function setVar(val) {
    alert(val);
    return val;
}

您在调用函数之前设置了
test3
,但是
test1
test2
在调用函数之前不会设置。因为test3在您定义它时运行,它不像一个函数。我投票关闭这个问题,因为它可以正常工作。@wordstack这一切都与javascript范围有关。你应该仔细阅读,这会更有意义。@Mathletics就不能说关于理解代码的任何问题吗?除了他说他希望在函数之外定义test3,所以你需要将
var test3
移到函数之外。这正是我需要的。非常感谢。var test3=函数(test1,test2){return test1+'bbb'+test2+'ddd';};var aaa=function(){alert(test3('aaa','bbb');};aaa();