Hướng dẫn javascript nested functions best practices - các phương pháp hay nhất về hàm lồng nhau trong javascript

Ảnh của Liudmyla Denysiuk trên unplash

Để làm cho mã dễ đọc và bảo trì, chúng ta nên làm theo một số thực tiễn tốt nhất.

Trong bài viết này, chúng tôi sẽ xem xét một số thực tiễn tốt nhất mà chúng ta nên làm theo để làm cho mọi người sống dễ dàng hơn.

Không có mã nào được nhận xét trong cơ sở mã của chúng tôi

Chúng tôi không nên nhận xét mã trong cơ sở mã của chúng tôi.

Chúng tôi có kiểm soát phiên bản để giữ một bản ghi các thay đổi của chúng tôi.

Vì vậy, chúng ta nên loại bỏ chúng.

Nếu chúng ta có:

doStuff();
// doMoreStuff();

Sau đó, chúng ta nên viết lại nó thành:

doStuff();

Không có ý kiến ​​tạp chí

Chúng ta không nên có nhận xét tạp chí vì kiểm soát phiên bản có hồ sơ thay đổi mã.

Chẳng hạn, chúng ta không nên viết:

/**
* 2019-02-03: Removed type-checking
* 2018-03-14: Added add function
*/
function add(a, b) {
return a + b;
}

Chúng tôi viết:

function add(a, b) {
return a + b;
}

Không có dấu hiệu vị trí

Các điểm đánh dấu vị trí chỉ là tiếng ồn, chúng ta không nên có chúng trong mã của chúng ta.

Thay vì viết:

////////////////////////////////////////////////////////////////////////////////
// initialize setup data
////////////////////////////////////////////////////////////////////////////////
const init = function() {
// ...
};

Chúng tôi viết:

const init = function() {
// ...
};

Không có dấu hiệu vị trí

Các điểm đánh dấu vị trí chỉ là tiếng ồn, chúng ta không nên có chúng trong mã của chúng ta.

Thay vì viết:

class Foo {}
class Bar {}
class Baz {}

Số lượng lớp tối đa cho mỗi tệp

Chúng tôi có thể muốn thực thi số lượng lớp tối đa cho mỗi tệp để giảm độ phức tạp và trách nhiệm của tệp.

Chẳng hạn, chúng tôi có thể giới hạn số lượng lớp ở mức tối đa 3:

Độ sâu tối đa mà các khối có thể được lồng

Mã lồng nhau khó đọc.

function foo() {
for (;;) {
while (true) {
if (true) {
if (true) {
}
}
}
}
}

Do đó, chúng ta nên loại bỏ chúng càng nhiều càng tốt.

function foo() {
for (;;) {

}
}

Một hoặc 2 cấp độ làm tổ có lẽ là mức tối đa có thể được dung nạp.

Ví dụ, don lồng viết

function foo() {
if (!cond) {
return;
}
while (true) {

}
}

Thay vào đó, chúng tôi viết:

doStuff();
0

Chúng ta có thể sử dụng các điều khoản bảo vệ để trở lại sớm.

Chẳng hạn, chúng ta có thể viết:

thay vì:

Chúng tôi cũng có thể sử dụng

doStuff();
7 hoặc
doStuff();
8 để dừng vòng lặp hoặc chuyển sang lần lặp tiếp theo của nó.

Chẳng hạn, chúng ta không nên viết:

doStuff();
1

Chúng tôi viết:

Do đó, chúng ta nên loại bỏ chúng càng nhiều càng tốt.

doStuff();
2

Một hoặc 2 cấp độ làm tổ có lẽ là mức tối đa có thể được dung nạp.

Ví dụ, don lồng viết

Thay vào đó, chúng tôi viết:

Chúng ta có thể sử dụng các điều khoản bảo vệ để trở lại sớm.

Chẳng hạn, chúng ta có thể viết:

thay vì:

Chúng tôi cũng có thể sử dụng doStuff();7 hoặc doStuff();8 để dừng vòng lặp hoặc chuyển sang lần lặp tiếp theo của nó.

Chiều dài đường tối đa

Chúng tôi đã cuộn theo chiều ngang để đọc các dòng dài.

Ví dụ, don lồng viết

doStuff();
3

Thay vào đó, chúng tôi viết:

Chúng ta có thể sử dụng các điều khoản bảo vệ để trở lại sớm.

Chẳng hạn, chúng ta có thể viết:

thay vì:

Chúng tôi cũng có thể sử dụng

doStuff();
7 hoặc
doStuff();
8 để dừng vòng lặp hoặc chuyển sang lần lặp tiếp theo của nó.

Chiều dài đường tối đa

doStuff();
4

Chúng tôi đã cuộn theo chiều ngang để đọc các dòng dài.

Do đó, chúng ta không nên viết chúng.

Nó tràn dòng.

Mỗi dòng ngắn hơn nhiều và dễ đọc hơn.

Chúng ta có thể làm tương tự với ý kiến.

Độ dài tệp tối đa

doStuff();
5

Chúng tôi viết:

doStuff();
6

Không có dấu hiệu vị trí

Các điểm đánh dấu vị trí chỉ là tiếng ồn, chúng ta không nên có chúng trong mã của chúng ta.

Thay vì viết:

Số lượng lớp tối đa cho mỗi tệp

Chúng tôi có thể muốn thực thi số lượng lớp tối đa cho mỗi tệp để giảm độ phức tạp và trách nhiệm của tệp.

Chẳng hạn, chúng tôi có thể giới hạn số lượng lớp ở mức tối đa 3:

Độ sâu tối đa mà các khối có thể được lồng

Các chức năng lồng nhau có được phép trong JavaScript không?

JavaScript cho phép làm tổ của các hàm và cấp cho hàm bên trong truy cập đầy đủ cho tất cả các biến và hàm được xác định bên trong hàm bên ngoài (và tất cả các biến và hàm khác mà hàm bên ngoài có quyền truy cập). and grants the inner function full access to all the variables and functions defined inside the outer function (and all other variables and functions that the outer function has access to).

Bạn nên tránh chức năng JavaScript phổ biến nào?

Hãy khám phá một số sai lầm nổi tiếng mà các nhà phát triển JavaScript mắc phải và hiểu cách tránh chúng ...
Lạm dụng toán tử bổ sung cho các mảng hợp nhất. ....
Sử dụng các toán tử bình đẳng không chính xác. ....
Bỏ qua 'var' và phạm vi. ....
Thiếu tham số trong các cuộc gọi chức năng. ....
Xử lý 'tài liệu tham khảo này ..

Tôi có thể gọi một hàm bên trong một hàm khác javascript không?

Cách tiếp cận: Viết một chức năng bên trong một hàm khác.Thực hiện cuộc gọi đến hàm bên trong trong câu lệnh trả về của hàm bên ngoài.Gọi nó là niềm vui (a) (b) trong đó A là tham số ở bên ngoài và B là hàm bên trong.Make a call to the inner function in the return statement of the outer function. Call it fun(a)(b) where a is parameter to outer and b is to the inner function.

Các thực tiễn tốt nhất trong JavaScript là gì?

JavaScript thực hành tốt nhất..
Introduction..
Gọi mọi thứ theo tên của họ - tên biến và chức năng dễ dàng, có thể đọc được ..
Tránh toàn cầu ..
Bám sát phong cách mã hóa nghiêm ngặt ..
Nhận xét nhiều như cần thiết nhưng không nhiều hơn ..
Tránh trộn với các công nghệ khác ..
Sử dụng ký hiệu phím tắt khi nó có ý nghĩa ..
Mô -đun hóa - một chức năng cho mỗi nhiệm vụ ..