小璐小璐哎
2018-11-14 08:42
返回打印的情况
返回return的情况
通过控制台调试可以发现,document.write()中的内容,是先执行函数部分,得到函数结果后才打印结果。举个栗子,比如document.write(1+2),如果内容是顺序打印出来,那结果还会是3么(笑)就是说,内容不是顺序打印下来,而是确定了要打印什么内容后,一次性全部打印出来。然后document.write()本身就是一个函数,定义一个变量去获取document.write()的返回值,发现是undefined(其实JS中的函数都是有返回值的,不定义返回值那默认就是undefined)。那么到这里再重新理一下代码的执行顺序:document.write("9和9的较大值是:"+compare(9,9)); 先是为了确定要输出的内容,执行了函数,在函数中遇到了document.write('两个数一样大'),所以先输出了内容"两个数一样大",接着compare(9,9)这个函数就算执行完了,由于这个函数没定义返回值,默认返回了undefined,这时候document.write("9和9的较大值是:"+compare(9,9));要输出的内容就确定了,一次性输出出:9和9的较大值是:undefined,你可以试试在document.write('两个数一样大')后面再添加一句return "两数相等";给函数加上返回值看看效果哦~
你可以这样用,var result=compare(9,9),将返回的结果存在result里面,再输出打印document.write(result),这个函数compare()返回的是一个值,而不是打印输出,如果要打印就得再次调用document.write,而document.write("两个数一样大")的情况下,调用函数就会打印输出,不存在返回值,就不能用result=compare(9,9)接收返回的值了
你可以这样用,var result=compare(9,9),将返回的结果存在result里面,再输出打印document.write(result),这个函数compare()返回的是一个值,而不是打印输出,如果要打印就得再次调用document.write,而document.write("两个数一样大")的情况下,调用函数就会打印输出,不存在返回值,就不能用result=app2(2,3)接收返回的值了
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题