亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript函數問題

javascript函數問題

權耀揚 2016-06-08 17:33:15
<script type="text/javascript">function ffo(a,b){ //定義函數? ? 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);</script>結果輸出4,undefined問: 為什么會輸出undefined?
查看完整描述

7 回答

?
lovespotty

TA貢獻1條經驗 獲得超1個贊

簡單說下,默認情況下,ES5函數如果沒有返回值,默認返回undefined。

function?test(){
????//code
????//啥也不返回
}
var?a?=?test();

那么a就是undefined;

這樣的話,再解釋你的代碼

function?ffo(a,b){
????//這里真正執行的是
????document.write(a?+?"<br>")
}
var?ff1?=?ffo(4,99);//ff1?得到的是undefined
document.write(ff1);

所以組后得到的是

4 undefined

查看完整回答
1 反對 回復 2016-06-09
?
檸檬酸鈉

TA貢獻331條經驗 獲得超534個贊

function?ffo(a,b){?//定義函數
????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的,所以在函數內執行的應該是第5行document.write(a + "<br>"),然后這條if語句就完了。

那么很明顯你的函數并沒有返回任何東西,也就說返回值是undefined,那么ff1就是undefined咯,你用document.write打印肯定是undefined

查看完整回答
1 反對 回復 2016-06-08
?
Suber丶林

TA貢獻75條經驗 獲得超180個贊

你的這句

//?表示把該方法執行的結果賦值給ff1,你這個方法沒有return,那么就是默認return?undefined;了
var?ff1?=?ffo(4,?99);

還有你的else里面的代碼永遠不會執行到,因為前面3個if已經包含了所有結果,可以把最后一個if去掉。

//?如果你真的想要執行后返回結果的話,那你把所有
document.write('xxxx');
//?改成
return?'xxxx';
//?醬紫就perfect了


查看完整回答
1 反對 回復 2016-06-08
?
亂舞的旋律

TA貢獻105條經驗 獲得超38個贊

ffo(4,99);? 執行到第二個if里面?? 沒有返回值 ,則返回undefined,所以 ff1是undefined。

ducument.write()是輸出 不是返回

查看完整回答
反對 回復 2016-06-08
?
慕粉3291149

TA貢獻71條經驗 獲得超52個贊

因為你的ffo函數沒有返回值 ?

查看完整回答
反對 回復 2016-06-08
?
蜂之谷

TA貢獻564條經驗 獲得超863個贊

你的函數只有if中有return啊,其它條件沒有return,你用ff1去接收返回肯定是undefined啊

這樣寫

<script?type="text/javascript">
function?ffo(a,b){?//定義函數
????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>


查看完整回答
反對 回復 2016-06-08
  • 7 回答
  • 0 關注
  • 1876 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號