Chúng ta có thể trả lại giá trị từ hàm javascript không?

Câu lệnh return được sử dụng để trả về một giá trị cụ thể từ hàm cho người gọi hàm. Hàm sẽ ngừng thực thi khi câu lệnh return được gọi. Câu lệnh return phải là câu lệnh cuối cùng trong một hàm vì mã sau câu lệnh return sẽ không thể truy cập được

Chúng ta có thể trả về các giá trị nguyên thủy [chẳng hạn như Boolean, số, chuỗi, v.v. ] và các loại Đối tượng [chẳng hạn như hàm, đối tượng, mảng, v.v. ] bằng cách sử dụng câu lệnh return

Chúng ta cũng có thể trả về nhiều giá trị bằng câu lệnh return. Nó không thể được thực hiện trực tiếp. Chúng ta phải sử dụng Mảng hoặc Đối tượng để trả về nhiều giá trị từ một hàm

cú pháp

Biểu thức trong cú pháp trên là giá trị trả về cho hàm gọi hàm. nó là tùy chọn. Nếu biểu thức không được chỉ định, hàm trả về không xác định

Không được phép sử dụng dấu kết thúc dòng giữa từ khóa trả về và giá trị. Chúng ta có thể hiểu nó bằng cách sử dụng các dòng sau. Giả sử chúng ta đang viết câu lệnh return như sau

Sau đó, nó sẽ được chuyển đổi thành -

Có tự động chèn dấu chấm phẩy sau câu lệnh return. Mã được viết sau câu lệnh return [x + y;] sẽ được coi là mã không thể truy cập

Chúng ta có thể sử dụng dấu ngoặc đơn để ngăn chặn vấn đề này. Nó có thể được viết là -

Bây giờ, hãy xem một số ví dụ về cách sử dụng câu lệnh return trong JavaScript

Ví dụ 1

Đây là một ví dụ đơn giản về việc sử dụng câu lệnh return. Ở đây, chúng tôi đang trả về kết quả của sản phẩm của hai số và trả lại giá trị cho người gọi hàm

Biến res là trình gọi hàm; . Kết quả sẽ được lưu trữ trong biến res. Ở đầu ra, giá trị 360 là tích của đối số 12 và 30

Kiểm tra nó ngay bây giờ

đầu ra

Sau khi thực thi đoạn mã trên, đầu ra là -

Ví dụ2

Ở đây, chúng ta đang ngắt một hàm bằng cách sử dụng câu lệnh return. Hàm dừng thực thi ngay lập tức khi câu lệnh return được gọi

Có một vòng lặp while vô hạn và biến i, được khởi tạo thành 1. Vòng lặp tiếp tục cho đến khi giá trị của tôi đạt đến 4. Khi giá trị của biến là 4, vòng lặp dừng thực thi do câu lệnh return. Câu lệnh sau vòng lặp sẽ không bao giờ được thực thi

Ở đây, câu lệnh return không sử dụng biểu thức nên nó trả về không xác định

Kiểm tra nó ngay bây giờ

đầu ra

Sau khi thực thi đoạn mã trên, đầu ra sẽ là -

Bây giờ, chúng ta sẽ xem cách trả về nhiều giá trị bằng cách sử dụng câu lệnh return. Thông thường, các hàm JavaScript trả về một giá trị duy nhất, nhưng chúng ta có thể trả về nhiều giá trị bằng cách sử dụng mảng hoặc đối tượng. Để trả về nhiều giá trị, chúng ta có thể đóng gói các giá trị dưới dạng thuộc tính của đối tượng hoặc thành phần mảng

Ví dụ3 - Trả về nhiều giá trị bằng Array

Trong ví dụ này, chúng tôi đang trả về nhiều giá trị bằng cách sử dụng Đối tượng. Ở đây, chúng tôi đang sử dụng cú pháp hủy đối tượng ES6 để giải nén các giá trị của đối tượng

Mặc dù đơn giản nhưng câu lệnh return trong JavaScript có thể giúp chúng ta cải thiện khả năng đọc mã của mình và làm cho mã ít phức tạp hơn

2 tháng 3 năm 2022 7 phút đọc

Bài đăng này miễn phí cho tất cả mọi người đọc nhờ vào sự đầu tư mà những người đăng ký Blog Mindsers đã thực hiện trong ấn phẩm độc lập của chúng tôi. Nếu công việc này có ý nghĩa với bạn, tôi mời bạn trở thành người đăng ký ngay hôm nay

Để kết thúc một chức năng, JavaScript sử dụng câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4. Câu lệnh
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 rất đơn giản. Đó là một trong những điều đầu tiên bạn sẽ học trong một khóa học mã hóa

Nhưng bạn không nên đánh giá thấp khả năng của nó trong việc giúp bạn viết mã sạch hơn và hoạt động hiệu quả hơn [và ngược lại khi bạn không nắm vững nó đủ tốt]

Tôi đang sử dụng mã JavaScript để minh họa quan điểm của mình trong bài đăng này, nhưng nó cũng áp dụng cho các ngôn ngữ lập trình khác

Bản tóm tắt

Câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4⁣ hoạt động như thế nào?

  • Còn những hàm không có câu lệnh trả về thì sao?
  • Câu lệnh return là câu lệnh “chặn”

Sử dụng tốt hơn câu lệnh return

  • Ra khỏi chức năng càng sớm càng tốt
  • Làm cho câu lệnh
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    2 hữu ích hơn

Câu lệnh
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4⁣ hoạt động như thế nào?

Chúng tôi sử dụng các chức năng để nhóm các câu lệnh lại với nhau theo ngữ cảnh. Nó có nghĩa là chúng phục vụ cùng một mục đích, làm cùng một nhiệm vụ

Quy tắc đầu tiên chúng ta sẽ thử và làm theo. một chức năng = một trách nhiệm. Không bao giờ có nhiều hơn một trách nhiệm. Nó sẽ làm cho mã của bạn tốt hơn rất nhiều

function addOneTo[a] {
    const result = a + 1
    
    return result
}

Hàm

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 cộng 1 vào giá trị chứa trong biến
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
5. Tôi giải thích chi tiết về các biến JavaScript trong một bài đăng khác, nếu bạn chưa cảm thấy thoải mái với chúng, tôi thực sự khuyến khích bạn đọc nó

Câu lệnh return cho phép chúng ta trả về kết quả của phép cộng theo cách này.

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
6

Nói cách khác, câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
7 cho phép chúng ta chỉ rõ cho trình thông dịch JavaScript hàm này sẽ trả về giá trị nào. Trong ví dụ của chúng tôi, chúng tôi sử dụng hai biến. Chúng tôi không muốn trả lại
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
5, chỉ có
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
9

Còn những hàm không có câu lệnh trả về thì sao?

Những người trong số các bạn, giống như tôi, có các lớp thuật toán có thể nhớ điều này. một chức năng phải luôn trả về một cái gì đó. Đó là một quy tắc cơ bản. JavaScript tuân theo quy tắc này, các hàm luôn trả về một cái gì đó. Trong trường hợp bạn không muốn trả về một giá trị, thì có một thứ khác tồn tại. Người ta gọi đó là thủ tục

Vấn đề là. Không có thủ tục nào trong JavaScript

Để giải quyết vấn đề này, JavaScript cho phép chúng tôi trả về giá trị “không xác định”. Nó không được xác định. Chúng tôi không biết giá trị là gì, vì vậy chúng tôi có thể nói nó trống rỗng

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}

Bằng cách này, bạn có thể sử dụng các hàm như khi sử dụng các thủ tục, bạn tập hợp các câu lệnh có thể tái sử dụng mà không trả về kết quả/giá trị đã xác định

Hàm

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return
}
0 chạy các câu lệnh của nó và ở phần cuối, chúng tôi nói rằng hàm trả về giá trị
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return
}
1. Đối với chúng tôi, điều đó có nghĩa là chúng tôi không trả lại gì, nhưng trình thông dịch rất vui vì dù sao thì bạn cũng trả về một giá trị

Nếu thử chạy hàm

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return
}
0, bạn sẽ thấy hàm trả về giá trị
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return
}
1

Tuy nhiên, có một số cách để làm cho mã đơn giản hơn. Đầu tiên, để trống giá trị như thế này

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return
}

Bởi vì "không có gì" được trả về, trình thông dịch JavaScript hiểu rằng bạn muốn trả về giá trị

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return
}
1 và tự động thực hiện việc đó

Bạn cũng có thể bỏ qua câu lệnh hoàn toàn, như thế này

function addOneTo[a] {
    const result = a + 1
    
    return result
}
5

Nếu bạn đang nghĩ đó là một thủ tục, tôi hiểu tại sao, nhưng nó đã sai. Hãy thử chạy hàm

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return
}
0, bạn sẽ thấy nó trả về giá trị
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return
}
1

Câu lệnh return là câu lệnh “chặn”

Việc

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 là một câu lệnh cổ điển cho phép chúng ta đặt nó ở bất kỳ đâu trong mã của một hàm

function addOneTo[a] {
    const result = a + 1
    
    return result
}
8

Mã trước đó là hợp lệ. Điều duy nhất bạn phải nhớ ở đây là

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 là một câu lệnh "chặn" trong phạm vi của hàm cha

Điều đó có nghĩa là nó chỉ ra sự dừng lại của chức năng mà nó là. Điều quan trọng là phải hiểu vì điều đó có nghĩa là mã nằm sau câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 sẽ không bao giờ được thực thi

Mã nằm sau câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 là cái mà chúng tôi gọi là “mã chết”

Trên thực tế, câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 có nghĩa đen là. “chức năng này đã chạy đúng cách, đây là kết quả bạn có thể hiển thị cho ngữ cảnh gốc. Không cần đọc thêm. ”

Sử dụng tốt hơn câu lệnh
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4

Nếu bạn đã tự hỏi tại sao chúng tôi lại sử dụng

function addOneTo[a] {
    const result = a + 1
    
    return result
}
53 thay vì bỏ qua câu lệnh hoặc nếu bạn thắc mắc tại sao chúng tôi lại viết mã sau một
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4, thì phần này của bài đăng là dành cho bạn

Khi bạn hiểu hai ý tưởng này, bạn có thể sử dụng câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 tốt hơn. Việc sử dụng tốt
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 giúp mã dễ đọc hơn

Ra khỏi chức năng càng sớm càng tốt

Khi chúng ta đọc mã, dù là của chúng ta hay của người khác, càng nhiều dữ liệu, bộ não của chúng ta càng khó hiểu nó. Các bước nhảy giữa các ngữ cảnh thực thi là một phần của dữ liệu cần được xem xét và mỗi chức năng là một ngữ cảnh thực thi mới

Điều này đang được nói, chúng tôi không muốn sử dụng ít chức năng hơn vì có nhiều ưu điểm hơn nhược điểm [khả năng sử dụng lại, cấu trúc mã, v.v.]

Một cách để giảm độ phức tạp của mã là giảm số lượng dữ liệu cần xem xét. Câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 có thể giúp chúng ta làm điều đó. Hãy xem một ví dụ

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
0

Hàm này được sử dụng để báo cho hàm JavaScript

function addOneTo[a] {
    const result = a + 1
    
    return result
}
58 cách sắp xếp một mảng. Nó được sử dụng như thế này.
function addOneTo[a] {
    const result = a + 1
    
    return result
}
59

Hãy đọc chức năng để hiểu. Hãy xem bộ não của chúng ta làm gì khi chúng ta gỡ lỗi để minh họa quan điểm của mình.

function addOneTo[a] {
    const result = a + 1
    
    return result
}
80 bằng
function addOneTo[a] {
    const result = a + 1
    
    return result
}
81 và
function addOneTo[a] {
    const result = a + 1
    
    return result
}
82 bằng
function addOneTo[a] {
    const result = a + 1
    
    return result
}
83

  1. Đầu tiên, tôi thấy rằng có một biến
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    9 được khởi tạo với giá trị
    function addOneTo[a] {
        const result = a + 1
        
        return result
    }
    85, nhưng giá trị này sẽ thay đổi vì chúng ta sử dụng câu lệnh
    function addOneTo[a] {
        const result = a + 1
        
        return result
    }
    86. Để đọc thêm về bước này, hãy đọc bài viết chi tiết về biến JavaScript
  2. Một điều kiện. nếu thứ tự của
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    5 vượt trội hơn so với
    function addOneTo[a] {
        const result = a + 1
        
        return result
    }
    88. Trong trường hợp của chúng tôi, chúng tôi sửa đổi giá trị của
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    9 thành
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    00
  3. một điều kiện mới. nếu thứ tự của
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    5 nhỏ hơn
    function addOneTo[a] {
        const result = a + 1
        
        return result
    }
    88. Đó không phải là trường hợp của chúng tôi, không cần phải đi vào chi tiết của điều kiện này
  4. một điều kiện mới. nếu thứ tự của
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    5 bằng với
    function addOneTo[a] {
        const result = a + 1
        
        return result
    }
    88. Đó không phải là trường hợp của chúng tôi ở đây, không cần phải đi vào chi tiết của tình trạng này
  5. Ta thấy câu lệnh
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    4 muốn trả về giá trị của biến
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    9. Hàm trả về
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    00 vì chúng ta đang ở trong phạm vi của điều kiện đầu tiên

Chúng tôi đã phải đọc [và hiểu] nhiều mã hơn mức cần thiết để đảm bảo rằng chúng tôi hiểu hàm này làm gì. Điểm 3 và 4 ở trên không cần thiết nhưng chúng ta vẫn phải ghi nhớ chúng. Chúng tôi cũng phải nhớ những gì đã xảy ra trước các bước này để biết những gì cần trả lại

Bây giờ, hãy thử viết lại mã của ______208 để có thể ra mắt càng sớm càng tốt, nhờ vào các đặc quyền của

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4. Sau đó, chúng ta sẽ thực hiện bài tập tương tự để so sánh độ phức tạp của mã

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
1

Chức năng mới này thực hiện chính xác điều tương tự. Nó có cùng chữ ký với chức năng đầu tiên. Bây giờ chúng ta thử đọc nhé [xin nhắc lại,

function addOneTo[a] {
    const result = a + 1
    
    return result
}
80 bằng
function addOneTo[a] {
    const result = a + 1
    
    return result
}
81 và
function addOneTo[a] {
    const result = a + 1
    
    return result
}
82 bằng
function addOneTo[a] {
    const result = a + 1
    
    return result
}
83]

  1. Đầu tiên mình nhập hàm là có ngay điều kiện. nếu thứ tự của
    function prepareObject[obj] {
        obj.connect[{
          // ...
        }]
        obj.use[{
          // ...
        }]
        
        return undefined
    }
    5 vượt trội hơn so với
    function addOneTo[a] {
        const result = a + 1
        
        return result
    }
    88. Đó là, trong trường hợp của chúng tôi, vì vậy chúng tôi trả về giá trị 1

Đây là cách câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 bị chặn và nó ngừng thực thi chức năng, trong trường hợp cụ thể của chúng tôi, phần còn lại của mã là "chết". Không có điểm nào trong việc đọc nó. Chúng ta không cần hiểu phần còn lại của hàm để hiểu nó làm gì trong trường hợp của chúng ta

Có rất ít thông số cần tính đến cho bộ não của chúng ta trong quá trình đọc. Đó là cách ít phức tạp hơn. Nó khiến tôi nghĩ về_______417 với Swift

Và nó đúng trong hầu hết mọi trường hợp. Cố gắng làm bài tập cho

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
18, ngay cả khi đó là điều kiện thử nghiệm cuối cùng, chức năng thứ hai ít phức tạp hơn

Làm cho câu lệnh
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
2 hữu ích hơn

Một cách khác để mã của

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
08 tốt hơn là sử dụng các từ khóa
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
2 và
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
32

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
3

Chúng tôi đang bắt chước hành vi của giải pháp với

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 vì các điều kiện tiếp theo không được thực thi ngay khi tìm thấy điều kiện tương ứng

Tuy nhiên, giải pháp này không phù hợp vì tôi nghĩ rằng nó vẫn còn quá tải và cần tập trung hơn so với giải pháp hoàn trả mà chúng tôi đã đề cập ở trên

Một số bỏ qua vấn đề này bằng cách sử dụng

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4. Nhưng họ quên mục đích sử dụng
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
2

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
6

Trong trường hợp cụ thể này, bạn phải chọn. hoặc là

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
2, hoặc là
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4. Việc sử dụng
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 hủy bỏ ưu điểm của việc sử dụng
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
2 và nó cũng làm phức tạp mã. Mã này không có mục đích nào khác ngoài việc cho thấy rằng người đã viết không thực sự hiểu sự tinh tế của câu lệnh
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
2 và câu lệnh
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4. đừng làm thế

Bằng cách chỉ sử dụng

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4 trong chức năng này, bạn xóa một vài từ. Nhưng quan trọng hơn, bạn xóa một phạm vi đầy đủ [trong
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
2 trước] và bạn xóa một mức thụt đầu dòng, như chúng ta đã thấy trước đây, giúp làm cho mã của bạn rõ ràng hơn và ít phức tạp hơn

Cá nhân tôi hiếm khi sử dụng

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
2 nữa trong mã của mình vì trong hầu hết các trường hợp, tôi có thể viết một hàm dễ đọc và dễ hiểu hơn bằng cách sử dụng riêng
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4

Đừng bắt tôi nói những gì tôi không nói, câu lệnh

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
2 và
function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
32 là những cấu trúc rất hữu ích, tôi vẫn sử dụng chúng khi cần thiết. Quan điểm của tôi ở đây là chúng chỉ hữu ích trong một số trường hợp. Sẽ chẳng ích gì khi sử dụng chúng nếu có những từ khóa hoặc cấu trúc khác phù hợp nhất với tình huống của chúng ta. Lời khuyên này phù hợp với mọi thứ trong lập trình

Tóm lại, câu lệnh return [

function prepareObject[obj] {
    obj.connect[{
      // ...
    }]
    obj.use[{
      // ...
    }]
    
    return undefined
}
4] cho phép trả về một giá trị, được xác định hoặc không, cho ngữ cảnh gốc của hàm. Khi câu lệnh return được chạy, nó dừng việc thực thi hàm hiện tại

Nó giúp tối ưu hóa việc viết mã của chúng tôi để giảm số lượng phạm vi và các mức thụt đầu dòng khác nhau bên trong một hàm. Nó cũng giúp ngăn việc xử lý quá nhiều dữ liệu khi chúng tôi đang gỡ lỗi

Tham gia cùng hơn 100 nhà phát triển và doanh nhân và nhận thông báo về mọi nội dung mới

Đi nào

Không có thư rác bao giờ. Hủy đăng ký trong một cú nhấp chuột bất cứ lúc nào

Nếu bạn có bất kỳ câu hỏi hoặc lời khuyên nào, vui lòng tạo bình luận bên dưới. Tôi sẽ thực sự vui mừng để đọc bạn. Ngoài ra nếu bạn thích bài viết này, đừng quên chia sẻ nó với bạn bè của bạn. Nó giúp rất nhiều

Bạn có thể trả về một giá trị từ một hàm không?

Để trả về giá trị từ hàm, bạn phải bao gồm câu lệnh trả về, theo sau là giá trị được trả về, trước câu lệnh kết thúc của hàm. If you do not include a return statement or if you do not specify a value after the keyword return, the value returned by the function is unpredictable.

JavaScript có trả về giá trị hoặc tham chiếu không?

Định nghĩa và cách sử dụng. Câu lệnh return dừng việc thực thi một hàm và trả về một giá trị . Đọc Hướng dẫn JavaScript của chúng tôi để tìm hiểu tất cả những gì bạn cần biết về hàm.

Chủ Đề