为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 1772 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信