Javascript 带有消息“的意外警报”;“未定义”;成功调用带有参数的简单函数后
有谁能告诉我为什么下面的代码会生成我期望的警报框(RyeTofuRye),但随后会生成第二个警报框,并显示消息“undefined?”至少在我的Windows7机器上的最新FireFox中是这样做的Javascript 带有消息“的意外警报”;“未定义”;成功调用带有参数的简单函数后,javascript,Javascript,有谁能告诉我为什么下面的代码会生成我期望的警报框(RyeTofuRye),但随后会生成第二个警报框,并显示消息“undefined?”至少在我的Windows7机器上的最新FireFox中是这样做的 function makeSandwich(bread, meat) { alert(bread + meat + bread); } var mySandwich = makeSandwich('Rye', 'Tofu'); alert(mySandwich); 因为您没有从makeSandwi
function makeSandwich(bread, meat) {
alert(bread + meat + bread);
}
var mySandwich = makeSandwich('Rye', 'Tofu');
alert(mySandwich);
因为您没有从
makeSandwich()
返回值,所以mySandwich
是未定义的将其更改为:
function makeSandwich(bread, meat) {
return(bread + meat + bread);
}
var mySandwich = makeSandwich('Rye', 'Tofu');
alert(mySandwich);
function makeSandwich(bread, meat) {
return(bread + meat + bread);
}
makeSandwich
不返回任何内容。将其更改为:
function makeSandwich(bread, meat) {
return(bread + meat + bread);
}
var mySandwich = makeSandwich('Rye', 'Tofu');
alert(mySandwich);
function makeSandwich(bread, meat) {
return(bread + meat + bread);
}
由于您不返回任何内容,第二个警报未定义
流程如下:
function makeSandwich(bread, meat) {//step-3
alert(bread + meat + bread); // alerting RyeTofuRy, step-4
// am i returnign anything? nope!
//adding a return (bread + meat + bread); resolves teh problem though
}
var mySandwich = makeSandwich('Rye', 'Tofu');//start here step-1
alert(mySandwich);//step-2, step-5
谢谢,埃斯瓦尔!这是一个完美的解释。