首頁 > web前端 > js教程 > 主體

JavaScript中return方法詳解

醉折花枝作酒筹
發布: 2023-01-06 11:16:56
原創
5907 人瀏覽過

在js中,return方法是將終止目前函數並傳回目前函數的值,語法格式為「return [[expression]];」。 return將傳回expression的值,如果忽略,即“return;”,則傳回undefined。

JavaScript中return方法詳解

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

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

1、定義

return,字面上就是返回,官方定義return語句將終止目前函數並傳回目前函數的值;可以看下下面的範例程式碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
      <title>Title</title>
      <script>
         function func1(){
              while (true){
                  return 1;
             }
         };
         alert(func1());
     </script>
 </head>
 <body>
 
 </body>
 </html>
登入後複製

可以看到我在函數裡面寫了一個死循環,然後在下面調用,在沒有寫return語句時瀏覽器會一直執行循環內的語句,直接卡死;

而寫了return語句後,直接中斷了函數,並且給函數回傳了一個數值1,意思是當函數執行後,函數體將被賦值為函數的回傳值,這裡會被傳回1;

2、寫法

官方定義return後面可以跟一個value,也就是說可以跟javascript中的任何資料類型,數字,字串,物件等,當然也可是再傳回一個函數,舉個栗子:

  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <title>Title</title>
      <script>
          function func1(){
              return function (){
                  alert(1);
             }
         };
         alert(func1());  //!func1()();   这个注释是通过自执行函数调用返回的函数
         </script>
 </head>
 <body>
 
 </body>
 </html>
登入後複製

範例圖片:

##當然是函數就可以調用,我們可以寫成! func1()();這裡很好理解,func1();我們印出來看了就是return後面跟的匿名函數,那麼我們就可以透過自執行函數的形式來調用,這裡通過!函數體();的形式來呼叫。可以將註解裡的程式碼拿出來試驗一下:

3、練習  

透過return語句來實作一個迴圈。

思路:既然return語句可以傳回一個函數,那就是說可以傳回它自己本身,在後面呼叫時就能實現一個迴圈的功能;

  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <title>Title</title>
      <script>
          var i=1;      //定义循环变量
          function func1(){
              i++;       //改变循环变量
             if(i<5){        //小括号为循环条件
                 document.write(i+&#39;<br>');      //这里是循环体
                 return func1();
             }                 
         }
         !func1()();               //调用函数
</script>
 </head>
 <body>
 
 </body>
 </html>
登入後複製
各部分在迴圈裡所起的作用已經在程式碼內的註解寫出,博友們可以自己去試驗一下,下面為執行效果圖:


4、定義javascript自帶方法中的回呼函數

前面我們已經對return的用法做了很詳細的研究,下面我們對javascript自帶方法中的回調函數做一下研究,這裡以數組中的sort();排序方法為例:

我們都知道sort();中可以寫一個回呼函數來給陣列指定排序的規則;範例程式碼:

  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
     <title>Title</title>
      <script>
          var arr = [1,3,2,6,5];
          arr.sort(function(a,b){
              return a-b;
         });
         console.log(arr); 
</script>
 </head>
 <body>
 
 </body>
 </html>
登入後複製
執行效果圖:

那為什麼會這樣呢,跟return又有什麼關係呢,相信有很多博友都很困擾,下面我們來做個實驗,將return後面的a-b換成-1 ;改動較小,就不再上傳程式碼,朋友們可自己手動修改;

執行效果圖:

可以看到,當回傳一個負數-1時,沒有改變;下面我們將return後面的a-b換成0;

執行效果圖:

可以看到,當返回0時,沒有發生變化;下面我們將return後面的a-b換成一個正數1;

#執行效果圖:

可以看到,當返回1時,數組順序被反轉了;

那麼,我們可以得出以下結論:

當a-b<=0時,a在前,b在後;

當a-b>0是,a在後,b在前;

到這裡,肯定有博友對a和b到底是啥有了疑問,我們可以通過下面的程式碼列印出來:

  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <title>Title</title>
      <script>
          var a = [1,3,2,6,5];
          a.sort(function(a,b){
              console.log('a是:'+a+'\t b是:'+b+'<br>');
             return a-b;
         });
         console.log(a);
</script>
 </head>
 <body>
 
 </body>
 </html>
登入後複製
執行效果圖:

return a-b;升序排列我們已經詳細的去分析了,那麼降序return b-a;就很簡單了,說白了就是return -(a-b);也就是在a-b的基礎上作了反轉變成降序。

到這裡我們可以得到一個總體的結論,return回去的值為一個數值,sort();方法會根據數值的正負對陣列的各個部分進行排序。

【推薦學習:javascript進階教學

以上是JavaScript中return方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!