问答详情
源自:5-6 编程练习

为什么结果显示未定义

var x;

var y,max;

function p(x,y){

if(x>y){

   max=x;

}else{

   max=y;

  }

}

 

//调用函数,实现下面两组数中,返回较大值。

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

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


为什么结果却显示这个 

5 和 4 的较大值是:undefined
6 和 3 的较大值是:undefined

提问者:qq_雨花石的眼泪_0 2016-09-03 15:44

个回答

  • 十年wf
    2016-09-24 16:01:40

    函数没有返回值 是不能被调用或者参与其他表达式的

  • Blizzard_lihe
    2016-09-03 17:24:59

    要有返回值的!!!

  • 科粉
    2016-09-03 16:21:58

    没有返回值,在判断后面应该跟return;将判断结果返回,方便调用时使用

  • pompeybrain
    2016-09-03 16:16:36

    注意一下你输出的是这个函数p(5,4)的结果,而你在函数内部把结果赋给了max,而没有返回值,所以显示undefined

    对于这种需要一次函数处理结果的你最好在函数体内返回值,没必要放在外面的全局变量,而且尽量减少全局变量的滥用

  • lampicka
    2016-09-03 16:15:17

    函数没有返回最大的值

  • hong9928
    2016-09-03 16:14:23

    函数值要返回出来 ,直接赋值是不可以的

  • qq_丶青春划破流沙_03752094
    2016-09-03 16:07:21

    <!DOCTYPE  HTML>

    <html >

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>函数</title>


    <script type="text/javascript">


    //定义函数

    function asd(x,y){

        if(x>y){

         return x;  

       }else if(x=y){

         return x,y; 

       }else if(x<y){

         return y;

       }

    }

    //函数体,判断两个整数比较的三种情况

    //调用函数,实现下面两组数中,返回较大值。

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

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

    </script>

    </head>

    <body>

    </body>

    </html>



  • qq_丶青春划破流沙_03752094
    2016-09-03 16:06:04

    没有返回值return

  • 欧阳8
    2016-09-03 15:59:04

    没有返回较大值,

    return max;