7 回答

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
簡(jiǎn)單說(shuō)下,默認(rèn)情況下,ES5函數(shù)如果沒(méi)有返回值,默認(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貢獻(xiàn)331條經(jīng)驗(yàn) 獲得超534個(gè)贊
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語(yǔ)句就完了。
那么很明顯你的函數(shù)并沒(méi)有返回任何東西,也就說(shuō)返回值是undefined,那么ff1就是undefined咯,你用document.write打印肯定是undefined

TA貢獻(xiàn)75條經(jīng)驗(yàn) 獲得超180個(gè)贊
你的這句
//?表示把該方法執(zhí)行的結(jié)果賦值給ff1,你這個(gè)方法沒(méi)有return,那么就是默認(rèn)return?undefined;了 var?ff1?=?ffo(4,?99);
還有你的else里面的代碼永遠(yuǎn)不會(huì)執(zhí)行到,因?yàn)榍懊?個(gè)if已經(jīng)包含了所有結(jié)果,可以把最后一個(gè)if去掉。
//?如果你真的想要執(zhí)行后返回結(jié)果的話,那你把所有 document.write('xxxx'); //?改成 return?'xxxx'; //?醬紫就perfect了

TA貢獻(xiàn)105條經(jīng)驗(yàn) 獲得超38個(gè)贊
ffo(4,99);? 執(zhí)行到第二個(gè)if里面?? 沒(méi)有返回值 ,則返回undefined,所以 ff1是undefined。
ducument.write()是輸出 不是返回

TA貢獻(xiàn)564條經(jīng)驗(yàn) 獲得超863個(gè)贊
你的函數(shù)只有if中有return啊,其它條件沒(méi)有return,你用ff1去接收返回肯定是undefined啊
這樣寫(xiě)
<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>
添加回答
舉報(bào)