7 回答
TA貢獻1條經(jīng)驗 獲得超1個贊
簡單說下,默認(rèn)情況下,ES5函數(shù)如果沒有返回值,默認(rèn)返回undefined。
function?test(){
????//code
????//啥也不返回
}
var?a?=?test();那么a就是undefined;
這樣的話,再解釋你的代碼
function?ffo(a,b){
????//這里真正執(zhí)行的是
????document.write(a?+?"<br>")
}
var?ff1?=?ffo(4,99);//ff1?得到的是undefined
document.write(ff1);所以組后得到的是
4 undefined
TA貢獻331條經(jīng)驗 獲得超534個贊
function?ffo(a,b){?//定義函數(shù)
????if(?a?>?b){
????????return?a;
????}?else?if(?a?<?b?){
????????document.write(a?+?"<br>")
????}?else?if(?a?==?b?){
????????document.write("axyb2")
????}else{
????????document.write("aaa");
????}
}
var?ff1?=?ffo(4,99);
document.write(ff1);很顯然,4是小于99的,所以在函數(shù)內(nèi)執(zhí)行的應(yīng)該是第5行document.write(a + "<br>"),然后這條if語句就完了。
那么很明顯你的函數(shù)并沒有返回任何東西,也就說返回值是undefined,那么ff1就是undefined咯,你用document.write打印肯定是undefined
TA貢獻75條經(jīng)驗 獲得超180個贊
你的這句
//?表示把該方法執(zhí)行的結(jié)果賦值給ff1,你這個方法沒有return,那么就是默認(rèn)return?undefined;了 var?ff1?=?ffo(4,?99);
還有你的else里面的代碼永遠不會執(zhí)行到,因為前面3個if已經(jīng)包含了所有結(jié)果,可以把最后一個if去掉。
//?如果你真的想要執(zhí)行后返回結(jié)果的話,那你把所有
document.write('xxxx');
//?改成
return?'xxxx';
//?醬紫就perfect了TA貢獻105條經(jīng)驗 獲得超38個贊
ffo(4,99);? 執(zhí)行到第二個if里面?? 沒有返回值 ,則返回undefined,所以 ff1是undefined。
ducument.write()是輸出 不是返回
TA貢獻564條經(jīng)驗 獲得超863個贊
你的函數(shù)只有if中有return啊,其它條件沒有return,你用ff1去接收返回肯定是undefined啊
這樣寫
<script?type="text/javascript">
function?ffo(a,b){?//定義函數(shù)
????if(?a?>?b){
????????return?a;
????}?else?if(?a?<?b?){
????????return?a?+?"<br>";
????}?else?if(?a?==?b?){
????????return?"axyb2";
????}else{
????????return?"aaa";
????}
}
var?ff1?=?ffo(4,99);
document.write(ff1);
</script>添加回答
舉報
