0

次のコードで期待どおりのアラート ボックス (RyeTofuRye) が生成されるのに、「未定義」というメッセージを含む 2 つ目のアラート ボックスが生成される理由を誰か教えてください。少なくとも、私の Windows 7 マシンの最新の FireFox ではそれが行われています。

function makeSandwich(bread, meat) {
alert(bread + meat + bread);
}
var mySandwich = makeSandwich('Rye', 'Tofu');
alert(mySandwich);
4

4 に答える 4

2

あなたが何も返していないので、2番目のアラートは未定義です!!
以下の流れ:

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
于 2012-06-27T01:22:36.957 に答える
0

これを次のように変更します。

function makeSandwich(bread, meat) {
return(bread + meat + bread);
}
var mySandwich = makeSandwich('Rye', 'Tofu');
alert(mySandwich);
于 2012-06-27T01:20:49.170 に答える
0

makeSandwich何も返しません。これを次のように変更します。

function makeSandwich(bread, meat) {
    return(bread + meat + bread);
}
于 2012-06-27T01:20:55.693 に答える
0

から値を返さないため、 もmakeSandwich()同様mySandwichですundefined

于 2012-06-27T01:20:30.473 に答える