免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
JavaScript中return的用法詳解

    最近,跟身邊學(xué)前端的朋友了解,有很多人對(duì)函數(shù)中的return的用法和意思理解的比較模糊,這里寫一篇博客跟大家一起探討一下return的用法。

 

     

1定義  

 

    return,從字面意思來(lái)看就是返回,官方定義return語(yǔ)句將終止當(dāng)前函數(shù)并返回當(dāng)前函數(shù)的值;可以看下下面的示例代碼:

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>Title</title> 6     <script> 7         function func1(){ 8             while (true){ 9                 return 1;10             }11         };12         alert(func1());13     </script>14 </head>15 <body>16 17 </body>18 </html>

    可以看到我在函數(shù)里面寫了一個(gè)死循環(huán),然后在下面調(diào)用,在沒(méi)有寫return語(yǔ)句時(shí)瀏覽器會(huì)一直執(zhí)行循環(huán)內(nèi)的語(yǔ)句,直接卡死;

    而寫了return語(yǔ)句后,直接中斷了函數(shù),并且給函數(shù)返回了一個(gè)數(shù)值1,意思就是當(dāng)函數(shù)執(zhí)行后,函數(shù)體將被賦值為函數(shù)的返回值,這里會(huì)被返回1;
           

    

    

     

2寫法

    官方定義return后面可以跟一個(gè)value,也就是說(shuō)可以跟javascript中的任何數(shù)據(jù)類型,數(shù)字,字符串,對(duì)象等,當(dāng)然也可是再返回一個(gè)函數(shù),舉個(gè)栗子:
       

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>Title</title> 6     <script> 7         function func1(){ 8             return function (){ 9                 alert(1);10             }11         };12         alert(func1());  //!func1()();   這個(gè)注釋是通過(guò)自執(zhí)行函數(shù)調(diào)用返回的函數(shù)
13 </script> 14 </head> 15 <body> 16 17 </body> 18 </html>

    示例圖片:

    

    當(dāng)然是函數(shù)就可以調(diào)用,我們可以寫成!func1()();這里很好理解,func1();我們打印出來(lái)看了就是return后面跟的匿名函數(shù),那么我們就可以通過(guò)自執(zhí)行函數(shù)的形式來(lái)調(diào)用,這里通過(guò)!函數(shù)體();的形式來(lái)調(diào)用??梢詫⒆⑨尷锏拇a拿出來(lái)試驗(yàn)一下:

    

     

3練習(xí)  

   
     
(1)練習(xí)1

    那么既然可以返回一個(gè)函數(shù),我們就將下面的代碼改寫為一個(gè)回調(diào)函數(shù)的形式:

    原代碼:

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>Title</title> 6     <script> 7     if(prompt('輸入數(shù)字1')==1){ 8      !function (){ 9        alert('輸對(duì)了');10      }()11     }else{12         !function (){13             alert('輸錯(cuò)了');14         }()15     }16     </script>17 </head>18 <body>19 20 </body>21 </html>

    改寫后:

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>Title</title> 6     <script> 7         function func1(){ 8             if(prompt('輸入數(shù)字1')==1){ 9                 return function (){10                     alert('輸對(duì)了');11                 }12             }else{13                  return function (){14                     alert('輸錯(cuò)了');15                 }16             }17         }18         !func1()();19     </script>20 </head>21 <body>22 23 </body>24 </html>

    改寫前是通過(guò)if語(yǔ)句來(lái)判斷執(zhí)行哪個(gè)函數(shù);改寫后是通過(guò)if語(yǔ)句判斷返回哪個(gè)函數(shù),然后在下面調(diào)用;并沒(méi)有什么意義只是幫助我們理解一下return;

 

     
(2)練習(xí)2

    通過(guò)return語(yǔ)句來(lái)實(shí)現(xiàn)一個(gè)循環(huán)。

    思路:既然return語(yǔ)句可以返回一個(gè)函數(shù),那么就是說(shuō)可以返回它自己本身,在后面調(diào)用時(shí)就能實(shí)現(xiàn)一個(gè)循環(huán)的功能;

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>Title</title> 6     <script> 7         var i=1;      //定義循環(huán)變量 8         function func1(){ 9             i++;       //改變循環(huán)變量10             if(i<5){        //小括號(hào)為循環(huán)條件11                 document.write(i+'<br>');      //這里是循環(huán)體12                 return func1();13             }                 14         }15         !func1()();               //調(diào)用函數(shù)16     </script>17 </head>18 <body>19 20 </body>21 </html>

    各部分在循環(huán)里所起的作用已經(jīng)在代碼內(nèi)的注釋寫出,博友們可以自己去試驗(yàn)一下,下面為執(zhí)行效果圖:

    

    

    

4定義javascript自帶方法中的回調(diào)函數(shù)  

 

    前面我們已經(jīng)對(duì)return的用法做了很詳細(xì)的研究,下面我們對(duì)javascript自帶方法中的回調(diào)函數(shù)做一下研究,這里以數(shù)組中的sort();排序方法為例:

    我們都知道sort();中可以寫一個(gè)回調(diào)函數(shù)來(lái)給數(shù)組指定排序的規(guī)則;示例代碼:

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>Title</title> 6     <script> 7         var arr = [1,3,2,6,5]; 8         arr.sort(function(a,b){ 9             return a-b;10         });11         console.log(arr); 12     </script>13 </head>14 <body>15 16 </body>17 </html>

    執(zhí)行效果圖:

    

    那么為什么會(huì)這樣呢,跟return又有什么關(guān)系呢,相信有很多博友都很困擾,下面我們來(lái)做個(gè)實(shí)驗(yàn),將return后面的a-b換成-1;改動(dòng)較小,就不再上傳代碼,朋友們可自己手動(dòng)修改;

    執(zhí)行效果圖:

    

    可以看到,當(dāng)返回一個(gè)負(fù)數(shù)-1時(shí),沒(méi)有發(fā)生變化;下面我們將return后面的a-b換成0;

    執(zhí)行效果圖:

    

    可以看到,當(dāng)返回0時(shí),沒(méi)有發(fā)生變化;下面我們將return后面的a-b換成一個(gè)正數(shù)1;

    執(zhí)行效果圖:

    

    可以看到,當(dāng)返回1時(shí),數(shù)組順序被反轉(zhuǎn)了;

    那么,我們可以得出以下結(jié)論:

      當(dāng)a-b<=0時(shí),a在前,b在后;

      當(dāng)a-b>0是,a在后,b在前;

    到這里,肯定有博友對(duì)a和b到底是啥有了疑問(wèn),我們可以通過(guò)下面的代碼打印出來(lái):

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>Title</title> 6     <script> 7         var a = [1,3,2,6,5]; 8         a.sort(function(a,b){ 9             console.log('a是:'+a+'\t b是:'+b+'<br>');10             return a-b;11         });12         console.log(a);13     </script>14 </head>15 <body>16 17 </body>18 </html>

 

     執(zhí)行效果圖:

    

    return a-b;升序排列我們已經(jīng)詳細(xì)的去分析了,那么降序return b-a;就很簡(jiǎn)單了,說(shuō)白了就是return -(a-b);也就是在a-b的基礎(chǔ)上作了反轉(zhuǎn)變成降序。

    到這里我們可以得出一個(gè)總體的結(jié)論,return回去的值為一個(gè)數(shù)值,sort();方法會(huì)根據(jù)數(shù)值的正負(fù)對(duì)數(shù)組的各個(gè)部分進(jìn)行排序。

    

    好了,今天的分享就到這里了,謝謝博客園平臺(tái)給予的給予的機(jī)會(huì)。希望我的分享能對(duì)博友們有所啟發(fā),博友們有不同的意見(jiàn)或建議可以在下面的留言區(qū)跟我交流。最后再次感謝大家的觀看與支持,謝謝。

JavaScript中return的用法詳解 - 吳雨欣 - 博客園  https://www.cnblogs.com/wuyuxin/p/7017246.html

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JS輸出語(yǔ)句匯總(5種)
JS:window.onload的使用
Javascript預(yù)編譯和執(zhí)行過(guò)程
JavaScript教程
一篇文章帶你了解JavaScript變量
JavaScript連載19-this關(guān)鍵字、對(duì)象的增刪改查
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服