10 Quy ước đặt tên trong JavaScript này cho bạn một hướng dẫn chung khi đặt tên biến, tên hàm, tên lớp hoặc tên các component trong JavaScript.
Dĩ nhiên, không ai bắt bạn phải làm theo 100% quy tắc / quy ước đặt tên này, tuy nhiên, chúng được chấp nhận rộng rãi như một tiêu chuẩn trong cộng đồng JavaScript.
#1: QUY ƯỚC ĐẶT TÊN BIẾN TRONG JS
Các biến JavaScript phân biệt chữ hoa chữ thường. Do đó, các biến JavaScript với ký tự viết thường và viết hoa là khác nhau:
var name = 'NIIT - ICT HÀ NỘI';
var Name = 'ELON MUSK';
var NAME = 'EDISON';
console.log(name);
// "NIIT - ICT HÀ NỘI"
console.log(Name);
// "ELON MUSK"
console.log(NAME);
// "EDISON"
Biến JavaScript phải tự mô tả ý nghĩa của nó. Không cần thiết phải thêm nhận xét để có mô tả bổ sung cho biến:
// bad
var value = 'NIIT';
// bad
var val = 'NIIT';
// good
var firstName = 'NIIT';
Thông thường, bạn sẽ thấy các biến JavaScript được khai báo bằng kiểu camelCase với ký tự viết thường ở đầu, các từ sau viết HOA chữ cái đầu:
// bad
var firstname = 'NIIT';
// bad
var first_name = 'NIIT';
// bad
var FIRSTNAME = 'NIIT';
// bad
var FIRST_NAME = 'NIIT';
// good
var firstName = 'NIIT';
Cũng có các ngoại lệ đối với các hằng số JavaScript, privates và các lớp / thành phần - mà chúng ta sẽ khám phá sau.
Tuy nhiên, nói chung, một biến JavaScript, một chuỗi, boolean hoặc số, cũng như là một đối tượng, mảng hoặc hàm - đều được khai báo với kiểu camelCase.
Tổng quan ngắn gọn về các kiểu viết tên biến khác nhau:
-
camelCase (sử dụng trong JS)
-
PascalCase (sử dụng trong JS)
-
snake_case
-
kebab-case
> Bạn đã HỌC JAVASCRIPT CƠ BẢN ổn chưa?
#2: QUY ƯỚC ĐẶT TÊN BOOLEAN TRONG JS
Thêm tiền tố như is
, are
hoặc has
là cách đơn giản nhất giúp mọi lập trình viên sử dụng JavaScript phân biệt biến boolean với một biến khác.
// bad
var number = true;
// good
var isNumber = true;
// bad
var equal = false;
// good
var areEqual = false;
// bad
var encryption = true;
// good
var hasEncryption = true;
Bạn có thể xem nó như một quy tắc mềm khác cho quy ước đặt tên boolean trong JavaScript bên cạnh việc được viết bằng camelCase.
#3: QUY ƯỚC ĐẶT TÊN FUNCTION TRONG JS
Các hàm JavaScript cũng được viết theo kiểu camelCase. Ngoài ra, cách tốt nhất để thực sự cho biết hàm đang làm gì là sử dụng một động từ làm tiền tố cho tên hàm.
// bad
function name(firstName, lastName) {
return `${firstName} ${lastName}`;
}
// good
function getName(firstName, lastName) {
return `${firstName} ${lastName}`;
}
Động từ làm tiền tố này có thể là bất cứ thứ gì (ví dụ: get, fetch, push, apply, calculate, compute, post).
Đó là một quy ước mềm khác cần xem xét để có được tên biến dễ hiểu khi lập trình JavaScript.
#4: QUY ƯỚC ĐẶT TÊN CLASS TRONG JS
Một lớp trong JavaScript được khai báo bằng kiểu PascalCase trái ngược với các cấu trúc dữ liệu JavaScript khác:
class SoftwareDeveloper {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}
var me = new SoftwareDeveloper('Mai', 'Hà');
Kiểu PascalCase là kiểu viết hoa mọi chữ cái đầu của mỗi từ.
Và khi muốn tạo một thể hiện mới của một lớp, ta sử dụng tên lớp và truyền tham số.
Khi đó, hàm constructor sẽ tự động nhận tham số đầu vào.
Cách khởi tạo thể hiện này tương tự các ngôn ngữ khác như Java...
> Tham khảo: Quy ước đặt tên trong Java
#5: QUY ƯỚC ĐẶT TÊN COMPONENT TRONG JS
Các component thường được tìm thấy trong các Front end Framework như React, chúng cũng được khai báo rộng rãi với kiểu PascalCase.
// bad
function userProfile(user) {
return (
<div>
<span>Họ: {user.firstName}</span>
<span>Tên: {user.lastName}</span>
</div>
);
}
// good
function UserProfile(user) {
return (
<div>
<span>Họ: {user.firstName}</span>
<span>Tên: {user.lastName}</span>
</div>
);
}
Khi một component được sử dụng, nó phân biệt chính nó với HTML gốc và các web component, vì chữ cái đầu tiên của nó luôn được viết bằng chữ hoa.
<div>
<UserProfile
user={{ firstName: 'Mai', lastName: 'Hà' }}
/>
</div>
#6: QUY ƯỚC ĐẶT TÊN MEDTHOD TRONG JS
Giống như các hàm JavaScript, tên một phương thức trong một lớp JavaScript được khai báo với kiểu camelCase:
class SoftwareDeveloper {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
// Method
getName() {
return `${this.firstName} ${this.lastName}`;
}
}
var me = new SoftwareDeveloper('Mai', 'Hà');
console.log(me.getName());
// "Mai Hà"
Ngoài ra, khi khai báo phương thức, bạn hãy áp dụng các quy ước tương tự như đối với các hàm JavaScript.
Ví dụ: Thêm một động từ làm tiền tố để làm cho tên phương thức dễ hiểu hơn.
#7: QUY ƯỚC ĐẶT TÊN PRIVATE TRONG JS
Trong các dự án JavaScript, hiếm khi bạn tìm thấy dấu gạch dưới (_
) trước biến / hàm / phương thức.
Nếu bạn nhìn thấy dấu gạch dưới trước tên, nó là private
.
Mặc dù tính chất private không thể thực sự được thực thi bởi JavaScript, nhưng việc khai báo một cái gì đó là private
sẽ cho chúng ta biết về cách nó nên được sử dụng hoặc cách nó không nên được sử dụng.
Ví dụ: Một phương thức private trong một lớp chỉ nên được sử dụng trong nội bộ lớp đó, tránh được sử dụng trên thể hiện của lớp.
class SoftwareDeveloper {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
this.name = _getName(firstName, lastName);
}
_getName(firstName, lastName) {
return `${firstName} ${lastName}`;
}
}
var me = new SoftwareDeveloper('Mai', 'Hà');
// good
var name = me.name;
console.log(name);
// "Mai Hà"
// bad
name = me._getName(me.firstName, me.lastName);
console.log(name);
// "Mai Hà"
Một biến / hàm private cũng có thể xuất hiện trong một tệp JavaScript.
Điều này có thể có nghĩa là biến / hàm không nên được sử dụng bên ngoài tệp này mà chỉ được sử dụng trong nội bộ để tính toán thêm logic nghiệp vụ cho các hàm khác trong cùng tệp mà thôi.
#8: QUY ƯỚC ĐẶT TÊN CONSTANT TRONG JS
Cuối cùng nhưng không kém phần quan trọng, các hằng số - nhằm mục đích là các biến không thay đổi - trong JavaScript được viết bằng chữ in hoa (UPPERCASE):
var SECONDS = 60;
var MINUTES = 60;
var HOURS = 24;
var DAY = SECONDS * MINUTES * HOURS;
Nếu một hằng số có nhiều hơn một từ trong tên khai báo biến của nó, nó sẽ sử dụng dấu gạch dưới (_
) để phân tách các từ:
var DAYS_UNTIL_TOMORROW = 1;
Thông thường, hằng số JavaScript được định nghĩa ở đầu tệp JavaScript.
Như đã gợi ý trước đây, không ai bắt buộc không được thay đổi hằng số ở đây, ngoại trừ các khai báo sử dụng từ khóa const
cho cấu trúc dữ liệu nguyên thủy, nhưng việc đặt tên VIẾT HOA cho thấy bạn nên tránh thay đổi nó.
#9: QUY ƯỚC ĐẶT TÊN GLOBAL VARIABLE TRONG JS
Một biến JavaScript được xác định biến Global (toàn cục), nếu trong tất cả ngữ cảnh của nó đều có quyền truy cập vào nó.
Thường thì ngữ cảnh được xác định bởi tệp JavaScript nơi biến được khai báo / định nghĩa, nhưng trong các dự án JavaScript nhỏ hơn, nó có thể là toàn bộ dự án.
Và cũng không có quy ước đặt tên đặc biệt nào cho các biến toàn cục trong JavaScript.
-
Một biến JavaScript toàn cục được khai báo ở đầu dự án / tệp.
-
Một biến JavaScript toàn cục được viết bằng camelCase nếu nó có thể thay đổi được.
-
Biến JavaScript toàn cục được viết bằng UPPERCASE nếu nó là bất biến.
#10: QUY ƯỚC ĐẶT TÊN FILE TRONG JAVASCRIPT
Có hai chiến lược đặt tên tệp trong JavaScript: PascalCase và kebab-case.
Trong các ứng dụng Front end, bạn sẽ thường thấy người ta sử dụng kiểu PascalCase để đặt tên cho các component (ví dụ: các component của React).
- components/
--- user/
----- UserProfile.js
----- UserList.js
----- UserItem.js
--- ui/
----- Dialog.js
----- Dropdown.js
----- Table.js
Ngược lại, trong ứng dụng back end, kebab-case là cách sử dụng thông thường:
- routing/
-- - user-route.js
-- - messages-route.js
Bạn cũng thể sẽ thấy ai đó sử dụng camelCase, nhưng tương tự như trong các ứng dụng front end. Nhưng điều này có nguy cơ là hệ điều hành đang xử lý chúng theo cách khác có thể dẫn đến lỗi.
Đó là lý do tại sao kiểu kebab-case nên là tiêu chuẩn cho việc đặt tên tệp trong JavaScript.
? CÓ NÊN SỬ DỤNG GẠCH DƯỚI ĐỂ ĐẶT TÊN BIẾN?
Vậy còn dấu gạch dưới có được sử dụng để đặt tên trong JavaScript không?
Vì camelCase và PascalCase chủ yếu được xem xét trong JS, bạn đã thấy rằng dấu gạch dưới hiếm khi được sử dụng cho các biến hoặc hằng số riêng.
Đôi khi, bạn sẽ tìm thấy dấu gạch dưới khi nhận thông tin từ bên thứ ba như cơ sở dữ liệu hoặc API.
Một trường hợp khác mà bạn có thể thấy dấu gạch dưới là các tham số hàm không được sử dụng.
? CÓ NÊN SỬ DỤNG GẠCH NGANG ĐỂ ĐẶT TÊN BIẾN?
Sử dụng dấu gạch ngang để đặt tên JavaScript cũng không phải là phổ biến. Nó chỉ làm cho mọi thứ trở nên khó khăn hơn.
Ví dụ như khi sử dụng chúng trong hướng đối tượng:
// bad
var person = {
'first-name': 'Mai',
'last-name': 'Hà',
};
var firstName = person['first-name'];
// good
var person = {
firstName: 'Mai',
lastName: 'Hà',
};
var firstName = person.firstName;
Và thậm chí bạn không thể sử dụng trực tiếp dấu gạch ngang cho khai báo biến:
var first-name = 'Mai';
// Uncaught SyntaxError: Unexpected token '-'
TỔNG KẾT VỀ CÁCH ĐẶT TÊN TRONG JAVASCRIPT
Tùy mục đích sử dụng mà bạn sử dụng cách đặt tên khác nhau trong JavaScript. Và mặc dù quy ước này không phải là hoàn toàn bắt buộc, nhưng nó là tiêu chuẩn ngầm định được cộng đồng JavaScript công nhận.
Vấn đề đặt tên cực kỳ quan trọng bởi hầu hết thời gian bạn sử dụng để đọc lại code, sửa chữa và tối ưu nó.
Đừng cố tự làm khó mình, khó đồng đội.
Biết cách đặt tên chuẩn trong JavaScript thì dù bạn có tiếp cận với dự án nào cũng sẽ nhanh chóng hơn, làm việc được với nhiều team nhờ tiếng nói chung.
> Đọc thêm: Tự học lập trình bắt đầu từ đâu?
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python