为什么结果这样显示?

来源:5-6 编程练习

等待Mr薰衣草

2016-04-06 21:13

5 5和4的较大值是:undefined

6 6和3的较大值是:undefined

写回答 关注

5回答

  • expressqingqing
    2016-04-10 12:50:34
    已采纳

    因为JS会先执行在前面的函数里面的document.write(),如果你不想提前输出最大值,必须用return对函数结果进行处理。

    <script type="text/javascript">

    function infos(a,b){

    if(a>b){

        return a;

    }else if(a<b){

        return b;

    }else{

        return a;

    }

    }

    var res1=infos(5,4);

    res2=infos(3,6);

     document.write(" 5 和 4 的较大值是:"+res1+"<br>");

     document.write(" 6 和 3 的较大值是:" +res2); 

    </script>


    等待Mr薰衣...

    get....蟹蟹!

    2016-04-10 19:58:27

    共 1 条回复 >

  • SimpleDog
    2016-04-12 03:16:46

    因为document.write()是网页向文档输出数据 而用ruturn是返回当前结果 而你document.write(x)输出的只有一个x 当然会undefined啦

  • 心如大海_春暖花开
    2016-04-06 22:01:08

    应该是你比较的函数写错了。

  • 不爱学习的小火猴
    2016-04-06 21:38:42

    你是不是在function中的return后边没有写返回值?所以才会显示undefined

    像下边这样?

    if(x>y)

     return ;

    等待Mr薰衣...

    用document.write()输出比较值时会出现这个问题,最后改成用return返回,结果正常了。

    2016-04-09 21:08:29

    共 1 条回复 >

  • 我不想学习
    2016-04-06 21:26:43

    好歹把代码挂上啊。。。

    这样显示大概是因为你比较的 不是int而是字符串,或者你比较的函数写错了

    等待Mr薰衣...

    用document.write()返回比较值会这样,换成return就好了。都是返回最大值,但是为什么会这样啊。。

    2016-04-09 21:12:42

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题