Javascript初学者-函数中未定义的变量
我在一些代码上遇到了一些问题。我想说: aaa bbb ccc ddd 但它说: 未定义的bbb未定义的ddd 在aaa函数之外定义的test3中,如何使这项工作正常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(); 您需要将该
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();