为什么不能用document.write输出一定要用return,而且显示结果是这种样子:

来源:5-6 编程练习

gir1ike

2016-02-05 06:00

为什么不能用document.write输出一定要用return,而且显示结果是这种样子:

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


<script type="text/javascript">


//定义函数

function comp(a,b){

        if(a>b){

             document.write(a);

        }

        else if(a == b){

             document.write(a);

        }

        else{

           document.write(b);

        }

        

    }

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

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

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


</script>


写回答 关注

3回答

  • 苏以
    2016-02-05 10:08:45

    document.write() 赋值 哪里 说错了 

  • 苏以
    2016-02-05 10:00:03

    document.write()只是输出的作用,你需要给document.write()赋值这样才会有效果,例如:var p = document.write(); 这样也是可以输出的。 理解的我习惯拿java去理解 ,p是一个对象,document.write()相当于这个对象说的一句话,如果你不把这句话赋予一个人的话,就不知道是谁说的所有理解不来为undefined(相当于不知道是谁说的),return 是有两种作用,第一返回当前的值,相当于会把你所做的一个公式的最后结果 (=)等号出来,第二个作用是 : 在这个函数中  当运行到return时候 这个函数结束了 ,当前函数运行结束,不管下面还有没有 代码,所有 运用的时候 要注意这点 ,想好在哪里 写return 。 语言方法和属性 一定要 是 对象 才拥有的 ,要不然就会理解不聊的 。

    gir1ik...

    Q1//函数返回值返回到哪里了 调用函数的地方 类似comp() 意思就是返回值返回到了这里吗 ? Q2//类似这种为什么能够输出正确,这里面也没返回值啊 function add2(x,y) { sum = x + y; document.write(sum); }

    2016-02-05 20:39:36

    共 1 条回复 >

  • 码喵
    2016-02-05 09:47:00

    你没有明白“document.write()”语句的作用。

    在函数里使用这条语句。函数执行完之后是没有返回值的,所以comp()执行完之后是啥结果都没有的,为undefined。

    简单地说:document.write这语句在函数里就被“消化”掉了,“渣”都没有。

    码喵 回复gir1ik...

    很简单的例子:var a = add2(1,2)。不考虑其他,a的值必定为undefined,因为add2没有返回值,执行完后是没东西的,但是因为里面的document.write()已经被执行过一次了,就会有输出。如果在add2里面加入“return sum;”的话,a的值就是sum,因为add2返回了这个值,而var a接收(被赋值)了。

    2016-02-16 08:28:49

    共 2 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题