亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么返回return和返回document.write后顯示的順序不一樣呢?


返回打印的情況https://img1.sycdn.imooc.com//5beb6ea90001575005350227.jpg

https://img1.sycdn.imooc.com//5beb6ea90001a88504140091.jpg

返回return的情況https://img1.sycdn.imooc.com//5beb6eaa0001506205380230.jpg

https://img1.sycdn.imooc.com//5beb6eaa0001ad2e03080068.jpg

正在回答

3 回答

通過控制臺調試可以發現,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 "兩數相等";給函數加上返回值看看效果哦~

2 回復 有任何疑惑可以回復我~

你可以這樣用,var result=compare(9,9),將返回的結果存在result里面,再輸出打印document.write(result),這個函數compare()返回的是一個值,而不是打印輸出,如果要打印就得再次調用document.write,而document.write("兩個數一樣大")的情況下,調用函數就會打印輸出,不存在返回值,就不能用result=compare(9,9)接收返回的值了

0 回復 有任何疑惑可以回復我~

你可以這樣用,var result=compare(9,9),將返回的結果存在result里面,再輸出打印document.write(result),這個函數compare()返回的是一個值,而不是打印輸出,如果要打印就得再次調用document.write,而document.write("兩個數一樣大")的情況下,調用函數就會打印輸出,不存在返回值,就不能用result=app2(2,3)接收返回的值了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么返回return和返回document.write后顯示的順序不一樣呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號