为什么返回return和返回document.write后显示的顺序不一样呢?
返回打印的情况
返回return的情况
返回打印的情况
返回return的情况
2018-11-14
通过控制台调试可以发现,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 "两数相等";给函数加上返回值看看效果哦~
举报