3 loại chức năng trong JavaScript là gì?
Hàm là một khối mã tham số được xác định một lần và được gọi nhiều lần sau đó. Trong JavaScript, một chức năng được cấu thành và chịu ảnh hưởng của nhiều thành phần Show
Bài đăng này dạy cho bạn sáu cách tiếp cận để khai báo các hàm JavaScript. cú pháp, ví dụ và những cạm bẫy phổ biến. Hơn nữa, bạn sẽ hiểu khi nào nên sử dụng một loại chức năng cụ thể trong một số trường hợp nhất định Mục lục1. khai báo hàm
Ví dụ khai báo hàm
1 là một khai báo hàm xác định hàm 2, xác định xem một số có chẵn không Khai báo hàm tạo một biến trong phạm vi hiện tại với định danh bằng tên hàm. Biến này giữ đối tượng chức năng Biến hàm được nâng lên trên cùng của phạm vi hiện tại, có nghĩa là hàm có thể được gọi trước khi khai báo (xem để biết thêm chi tiết) Hàm đã tạo được đặt tên, có nghĩa là thuộc tính 3 của đối tượng hàm giữ nguyên tên của nó. Nó rất hữu ích khi xem ngăn xếp cuộc gọi. trong quá trình gỡ lỗi hoặc đọc thông báo lỗi Hãy xem các thuộc tính này trong một ví dụ
Khai báo hàm 4 tạo một biến 5 được nâng lên đầu phạm vi hiện tại. Biến 5 chứa đối tượng hàm và biến 7 chứa tên hàm. 8 1. 1 Một chức năng thông thườngKhai báo hàm phù hợp với các trường hợp khi cần một hàm thông thường. Thông thường có nghĩa là bạn khai báo hàm một lần và sau đó gọi nó ở nhiều nơi khác nhau. Đây là kịch bản cơ bản
Bởi vì khai báo hàm tạo ra một biến trong phạm vi hiện tại, bên cạnh các lời gọi hàm thông thường, nó rất hữu ích cho các trình xử lý sự kiện đệ quy hoặc tách rời. Trái ngược với các biểu thức hàm hoặc hàm mũi tên, không tạo ràng buộc với biến hàm theo tên của nó Ví dụ, để tính giai thừa đệ quy, bạn phải truy cập vào hàm bên trong
Bên trong 9, một cuộc gọi đệ quy đang được thực hiện bằng cách sử dụng biến chứa hàm. 0 Có thể sử dụng một biểu thức hàm và gán nó cho một biến thông thường, e. g. 1. Nhưng phần khai báo hàm 2 thì gọn nhẹ (không cần 3 và 4) Một thuộc tính quan trọng của khai báo hàm là cơ chế cẩu của nó. Nó cho phép sử dụng hàm trước khi khai báo trong cùng một phạm vi Palăng rất hữu ích trong một số tình huống. Ví dụ: khi bạn muốn xem cách hàm được gọi ở đầu tập lệnh mà không cần đọc phần triển khai hàm. Việc triển khai chức năng có thể được đặt bên dưới trong tệp, vì vậy bạn thậm chí không thể cuộn ở đó Bạn có thể đọc thêm chi tiết về cẩu khai báo hàm 1. 2 Sự khác biệt từ biểu thức chức năngDễ nhầm lẫn giữa khai báo hàm và biểu thức hàm. Chúng trông rất giống nhau nhưng tạo ra các hàm với các thuộc tính khác nhau Một quy tắc dễ nhớ. khai báo hàm trong câu lệnh luôn bắt đầu bằng từ khóa 8. Mặt khác, đó là một biểu thức hàm (xem) Mẫu sau đây là một khai báo hàm trong đó câu lệnh bắt đầu bằng từ khóa 8
Trong trường hợp các biểu thức hàm, câu lệnh JavaScript không bắt đầu bằng từ khóa 8 (nó hiện diện ở đâu đó ở giữa mã câu lệnh)
1. 3 Khai báo hàm trong điều kiệnMột số môi trường JavaScript có thể gây ra lỗi tham chiếu khi gọi một hàm có khai báo xuất hiện trong các khối 0 của các câu lệnh 9, 0 hoặc 1 Hãy kích hoạt chế độ nghiêm ngặt và xem điều gì sẽ xảy ra khi một hàm được khai báo trong điều kiện
Khi gọi 2, JavaScript ném ra 3, vì khai báo hàm nằm trong một khối điều kiện Việc khai báo hàm trong điều kiện được cho phép ở chế độ không nghiêm ngặt, điều này càng khiến nó trở nên khó hiểu hơn Theo quy tắc chung cho những tình huống này, khi một hàm nên được tạo theo điều kiện - hãy sử dụng biểu thức hàm. Hãy xem làm thế nào nó có thể
Vì hàm là một đối tượng chính quy, nên gán nó cho một biến tùy thuộc vào điều kiện. Gọi 2 hoạt động tốt, không có lỗi 2. biểu thức hàm
Một số mẫu biểu thức hàm
Biểu thức hàm tạo một đối tượng hàm có thể được sử dụng trong các tình huống khác nhau
Biểu thức hàm là con ngựa làm việc trong JavaScript. Thông thường, bạn xử lý kiểu khai báo hàm này, bên cạnh hàm mũi tên (nếu bạn thích cú pháp ngắn và ngữ cảnh từ vựng) 2. 1 Biểu thức hàm được đặt tênMột hàm ẩn danh khi nó không có tên (thuộc tính ______4_______3 là một chuỗi rỗng 2)
Đây là một hàm ẩn danh, tên là một chuỗi rỗng Đôi khi tên hàm có thể được suy ra. Ví dụ: khi ẩn danh được gán cho một biến 0 Tên hàm ẩn danh là 3, vì tên biến 4 được sử dụng để suy ra tên hàm Khi biểu thức có tên được chỉ định, đây là biểu thức hàm được đặt tên. Nó có một số thuộc tính bổ sung so với biểu thức hàm đơn giản
Hãy sử dụng ví dụ trên, nhưng đặt tên trong biểu thức hàm 1 6 là một biểu thức hàm được đặt tên. Biến 7 có thể truy cập trong phạm vi chức năng, nhưng không thể truy cập bên ngoài. Dù bằng cách nào, thuộc tính 3 của đối tượng hàm giữ tên. 7 2. 2 Biểu thức hàm được ưu tiên đặt tênKhi một biểu thức hàm 0 được gán cho một biến, một số công cụ suy ra tên hàm từ biến này. Tuy nhiên, các cuộc gọi lại có thể được chuyển dưới dạng các biểu thức hàm ẩn danh mà không cần lưu trữ vào các biến. vì vậy động cơ không thể xác định tên của nó Điều hợp lý là ưu tiên các chức năng được đặt tên và tránh các chức năng ẩn danh để đạt được các lợi ích như
3. định nghĩa phương pháp tốc ký
Ví dụ sau sử dụng định nghĩa phương thức tốc ký trong một đối tượng bằng chữ 2 Các phương thức 3 và 4 trong đối tượng 5 được định nghĩa bằng cách sử dụng định nghĩa phương thức ngắn. Các phương pháp này được gọi như bình thường. 6 và 7 Cách tiếp cận ngắn gọn của định nghĩa phương thức có một số lợi ích so với định nghĩa thuộc tính truyền thống với tên, dấu hai chấm 8 và biểu thức hàm 9
Cú pháp 0 yêu cầu khai báo phương thức ở dạng ngắn 3 3. 1 Tên và phương thức thuộc tính được tính toánECMAScript 2015 thêm một tính năng hay. tên thuộc tính được tính toán theo nghĩa đen và lớp đối tượng 1, vì vậy định nghĩa phương thức trông như thế này 4 2 và 3 là các khai báo phương thức tốc ký với tên thuộc tính được tính toán 4. chức năng mũi tên
Khi hàm mũi tên chỉ có một tham số, có thể bỏ qua cặp dấu ngoặc đơn. Khi nó chứa một câu lệnh đơn, dấu ngoặc nhọn cũng có thể được bỏ qua Hãy xem chức năng mũi tên sử dụng cơ bản 5 7 là hàm mũi tên tính giá trị tuyệt đối của một số Hàm được khai báo bằng mũi tên béo có các thuộc tính sau
4. 1 Minh bạch bối cảnhTừ khóa 6 là một khía cạnh khó hiểu của JavaScript (xem bài viết này để biết giải thích chi tiết về 6) Vì các hàm tạo ngữ cảnh thực thi riêng nên thường rất khó phát hiện giá trị 6 ECMAScript 2015 cải thiện việc sử dụng 6 bằng cách giới thiệu chức năng mũi tên, lấy ngữ cảnh theo từ vựng (hoặc đơn giản là sử dụng 6 từ phạm vi bên ngoài ngay lập tức). Điều này thật tuyệt vì bạn không phải sử dụng 7 hoặc lưu trữ ngữ cảnh 8 khi một hàm cần ngữ cảnh kèm theo Hãy xem cách 6 được kế thừa từ hàm bên ngoài 6 Lớp 00 chứa một mảng số và cung cấp phương thức 01 để chèn số mới Khi 01 được gọi mà không có đối số, một bao đóng được trả về cho phép chèn số. Bao đóng này là một hàm mũi tên có 6 là đối tượng 04 vì ngữ cảnh được lấy từ vựng từ phương thức 05 Không có chức năng mũi tên, bạn phải tự sửa ngữ cảnh. Nó có nghĩa là sử dụng các giải pháp thay thế như phương pháp 06 7 hoặc lưu ngữ cảnh vào một biến riêng biệt 8 8 Tính minh bạch của ngữ cảnh có thể được sử dụng khi bạn muốn giữ nguyên như cũ 6, được lấy từ ngữ cảnh kèm theo 4. 2 cuộc gọi lại ngắnKhi tạo một hàm mũi tên, các cặp dấu ngoặc đơn và dấu ngoặc nhọn là tùy chọn cho một tham số và câu lệnh nội dung đơn. Điều này giúp tạo các chức năng gọi lại rất ngắn Hãy tạo một hàm tìm xem một mảng có chứa 09 không 9 10 là một hàm mũi tên có vẻ đơn giản Lưu ý rằng các hàm mũi tên ngắn lồng nhau rất khó đọc. Cách thuận tiện để sử dụng biểu mẫu hàm mũi tên ngắn nhất là gọi lại một lần (không lồng nhau) Nếu cần, hãy sử dụng cú pháp mở rộng của các hàm mũi tên khi viết các hàm mũi tên lồng nhau. Nó chỉ dễ đọc hơn 5. Chức năng máy phát điệnHàm trình tạo trong JavaScript trả về một đối tượng Trình tạo. Cú pháp của nó tương tự như biểu thức hàm, khai báo hàm hoặc khai báo phương thức, chỉ khác là nó yêu cầu ký tự sao 11 Hàm tạo có thể được khai báo theo các dạng sau a. Mẫu khai báo hàm 12 0 b. Dạng biểu thức hàm 13 1 c. Biểu mẫu định nghĩa phương pháp tốc ký 14 2 Trong cả 3 trường hợp, hàm tạo trả về đối tượng trình tạo 15. Sau đó, 15 được sử dụng để tạo ra một chuỗi các số tăng dần 6. Một điều nữa. chức năng mớiTrong JavaScript, các hàm là các đối tượng hạng nhất - một hàm là một đối tượng thông thường thuộc loại 8 Các cách khai báo được mô tả ở trên tạo ra cùng một loại đối tượng chức năng. Hãy xem một ví dụ 3 Loại đối tượng chức năng có một hàm tạo. 18 Khi 18 được gọi như một hàm tạo 20, một hàm mới được tạo. Các đối số 21 được truyền cho hàm tạo trở thành tên tham số cho hàm mới và đối số cuối cùng 22 được sử dụng làm mã thân hàm Hãy tạo một hàm tính tổng hai số 4 23 được tạo bằng lời gọi hàm tạo 18 có các tham số 25 và 26 và phần thân 27 Các chức năng được tạo theo cách này không có quyền truy cập vào phạm vi hiện tại, do đó không thể tạo các bao đóng. Chúng luôn được tạo trong phạm vi toàn cầu Một ứng dụng có thể có của 28 là cách tốt hơn để truy cập đối tượng toàn cầu trong trình duyệt hoặc tập lệnh NodeJS 5 Hãy nhớ rằng các chức năng hầu như không bao giờ nên được khai báo bằng cách sử dụng 29. Bởi vì thân hàm được đánh giá trong thời gian chạy, cách tiếp cận này kế thừa nhiều 30 vấn đề sử dụng. rủi ro bảo mật, gỡ lỗi khó hơn, không có cách nào để áp dụng tối ưu hóa công cụ, không có trình chỉnh sửa tự động hoàn thành 7. Cuối cùng, cách nào tốt hơn?Không có người chiến thắng hay kẻ thua cuộc. Quyết định chọn loại khai báo nào tùy thuộc vào tình huống Tuy nhiên, có một số quy tắc mà bạn có thể tuân theo trong các tình huống thông thường Nếu chức năng sử dụng 6 từ chức năng kèm theo, chức năng mũi tên là một giải pháp tốt. Khi chức năng gọi lại có một câu lệnh ngắn, chức năng mũi tên cũng là một lựa chọn tốt, bởi vì nó tạo ra mã ngắn và nhẹ Đối với một cú pháp ngắn hơn khi khai báo các phương thức trên các ký tự đối tượng, nên sử dụng khai báo phương thức tốc ký 28 cách khai báo hàm thông thường không nên dùng. Chủ yếu là vì nó mở ra những rủi ro bảo mật tiềm ẩn, không cho phép mã tự động hoàn thành trong trình chỉnh sửa và mất khả năng tối ưu hóa công cụ Bạn thích hàm mũi tên hay biểu thức hàm hơn? Thích bài viết?đề xuất cải tiến Bài đăng chất lượng vào hộp thư đến của bạnTôi thường xuyên xuất bản bài viết có chứa
Đăng ký nhận bản tin của tôi để nhận chúng ngay trong hộp thư đến của bạn Đặt muaTham gia 6904 thuê bao khác Giới thiệu về Dmitri PavlutinNhà văn và huấn luyện viên công nghệ. Thói quen hàng ngày của tôi bao gồm (nhưng không giới hạn) uống cà phê, viết mã, viết, huấn luyện, vượt qua sự nhàm chán 😉 Hiện đang làm việc với tư cách là nhà phát triển nguồn mở toàn thời gian trong dự án Readapt - nhằm mục đích làm cho mọi người đều có thể truy cập web Các chức năng khác nhau trong JavaScript là gì?Có 3 cách viết hàm trong JavaScript. Khai báo hàm . Biểu thức hàm . Hàm mũi tên .
Ba phần của hàm trong JavaScript là gì?JavaScript cho phép chúng ta truy cập vào ba chức năng toàn cầu. Đối tượng, Mảng và Hàm .
3 phần chung của khai báo hàm là gì?Thân hàm có ba phần. phần khai báo tùy chọn, phần thực thi và phần xử lý ngoại lệ tùy chọn .
Ba 3 cách để gọi hoặc gọi một hàm trong JavaScript là gì?Có thể gọi các hàm JavaScript. . Là một chức năng Là một phương pháp Là một nhà xây dựng thông qua cuộc gọi và áp dụng |