Chúng ta có thể sử dụng enum trong JavaScript không?
Điều đó không sao vì một số có thể có nghĩa là bất kỳ thứ gì chúng ta muốn, bắt đầu từ loại ô tô (ví dụ: 1 dành cho xe tải) hoặc thậm chí trạng thái của một phép tính (ví dụ: 1 là bắt đầu) Show Chúng ta có thể nghĩ rằng chỉ cần có một biến là đủ để hiểu nó. Hãy xem nhanh đoạn mã dưới đây Ồ. Chúng ta có thể tìm ra loại xe. Nhưng nếu chúng ta cần thêm nhiều loại xe thì sao? Chúng ta có thể làm điều này vô tận, và nó sẽ vẫn hoạt động. Tuy nhiên, các loại này sẽ không được kết nối hợp lý. Chúng sẽ chỉ là các hằng số riêng biệt có thể di chuyển đến bất kỳ đâu trong mã của bạn. Xử lý các biến theo cách này hơi lộn xộn Enum là gì?Với nền tảng đó, hãy để tôi giới thiệu Enums (kiểu liệt kê). Với Enums, nhà phát triển có thể xác định một tập hợp các hằng số được đặt tên. Điều này giúp dễ dàng ghi lại hoặc tạo một tập hợp các trường hợp riêng biệt Sử dụng Enums cũng có thể giảm thiểu lỗi chính tả, vì Enums không thể thay đổi. Và nó có thể làm cho mã của bạn an toàn và sạch sẽ hơn (nghĩa là có thể tìm kiếm theo tên, với khả năng loại bỏ các giá trị ma thuật, v.v.). Hãy nghĩ về Enums như một loại lớp đóng, các thể hiện được xác định trước một cách tĩnh Tuy nhiên, có một vấn đề nhỏ - Enums không được hỗ trợ trong JavaScript nguyên bản. Tuy nhiên, vì Enum là một mẫu nên nó có thể được sao chép thông qua một số kỹ thuật và tính năng của JavaScript gốc Chúng ta hãy xem xét hai tùy chọn áp dụng điều tra viên trong JavaScript liệt kê JavaScript. một đại diện cơ bảnBước 1. Xác định một đối tượng đơn giản bằng chữ (POJO)Như chúng tôi đã đề cập trước đây, Enums là các hằng số tên hay nói cách khác là các cặp khóa-giá trị, vì vậy chúng tôi có thể chỉ cần tạo một đối tượng Quy ước đặt tên ở đây là một vấn đề của hương vị. Loại phổ biến nhất là PascalCase cho tên và UPPER_CASE cho khóa. Nhưng một lần nữa, tùy bạn quyết định bạn muốn nó trông như thế nào Lưu ý rằng điều này vẫn không sao chép Enums thực, vì các giá trị có thể thay đổi dễ dàng Bước 2. Đảm bảo rằng các giá trị không đổiTrong JS gốc, có thể giữ nguyên các thuộc tính của đối tượng. Tùy chọn đầu tiên là sử dụng phương thứcdefineProperty, nhưng trong ES6, chúng tôi đã có phương thức đóng băng để làm như vậy Đó là nó cho các tình huống cơ bản. Đối với các kịch bản phức tạp hơn, trong đó các giá trị phải là đối tượng hoặc logic khác nên được đưa vào, chúng ta có thể phát triển triển khai Enum của riêng mình điều tra viên JavaScript. đại diện nâng caoNhư chúng ta đã biết, Enum là một lớp với các thể hiện được xác định trước. Vì vậy, hãy xem xét kỹ việc triển khai của chúng tôi. Chúng tôi sẽ sử dụng ES6, vì các phiên bản cũ hơn không thực sự phù hợp ở đây Trong trường hợp này, theo nghĩa đen, chúng tôi xác định trước các thể hiện của lớp có thể được sử dụng trong logic nghiệp vụ của chúng tôi và thêm phương thức toString làm ví dụ về logic tùy chỉnh cho phép liệt kê của chúng tôi Chúng ta có thể làm cho ví dụ này có thể lặp lại, thêm các phương thức hữu ích hơn và sử dụng lớp Proxy để hạn chế thay đổi trực tiếp các thuộc tính, nhưng tôi sẽ để phần đó cho bạn tự nghiên cứu vì nó nằm ngoài phạm vi của bài viết này Sự lựa chọn khácBạn cũng có thể sử dụng các gói NPM như enumify, giúp triển khai chính mẫu enum hoặc gói enum cung cấp triển khai hoàn chỉnh với nhiều tính năng hơn, chẳng hạn như không gian tên Cuối cùng, nếu bạn sử dụng TypeScript trong dự án của mình, Enums có sẵn ngay lập tức Tóm tắt và liên kết hữu íchPhần trên giải thích cách chúng tôi đi sâu vào Enums và thậm chí tạo bảng liệt kê tùy chỉnh của riêng mình bằng JavaScript đơn giản Chỉ cần thông báo trước. bạn nên suy nghĩ cẩn thận trước khi sử dụng Enums vì chúng không hữu ích đồng đều trong mọi trường hợp. Tuy nhiên, chúng có thể có lợi trong phần lớn các tình huống Dưới đây là một số liên kết hữu ích mà bạn có thể thấy thú vị
Cảm ơn vì đã đọc. Tôi hy vọng bạn thích hướng dẫn ngắn gọn này và học được điều gì đó mới về phép liệt kê trong JavaScript Xây dựng các ứng dụng có thể kết hợp với các thành phần tách rời Đừng xây dựng web nguyên khối. Sử dụng Bit để tạo và soạn các thành phần phần mềm tách rời — trong các khung yêu thích của bạn như React hoặc Node. Xây dựng các ứng dụng mô-đun và có thể mở rộng với trải nghiệm nhà phát triển mạnh mẽ và thú vị Đưa nhóm của bạn đến Bit Cloud để lưu trữ và cộng tác trên các thành phần cùng nhau, đồng thời tăng tốc, mở rộng quy mô và chuẩn hóa đáng kể quá trình phát triển theo nhóm. Bắt đầu với các giao diện người dùng có thể kết hợp như Hệ thống thiết kế hoặc Giao diện vi mô hoặc khám phá phần phụ trợ có thể kết hợp. Hãy thử nó → Enums trong JavaScript có thể mang lại nhiều lợi ích. Chúng giúp giảm thiểu lỗi chính tả trong trường hợp chuỗi đồng thời cung cấp tên tiếng Anh cho một số giá trị có thể là số. Các giá trị cũng được coi là hằng số và sẽ không bị thay đổi trong thời gian chạy — tất cả điều này, cũng như làm cho mã dễ dàng cấu trúc lại hơn với một nguồn sự thật duy nhất cho các giá trị. Điều gì không thích? Hãy cùng xem một số ví dụ và cách triển khai enums Xác định Enums của chúng tôi Mặc dù JavaScript không có kiểu riêng cho enum, nhưng chúng ta luôn có thể tạo kiểu riêng của mình bằng cách sử dụng một đối tượng. Có một số quy ước thường được sử dụng khi xác định enum — mặc dù bạn không nhất thiết phải tuân theo chúng
Với suy nghĩ trên, chúng ta hãy xem những điều sau đây Chúng tôi có một enum ở đây cho một số giá trị thời gian mà chúng tôi có thể sử dụng thường xuyên trong cơ sở mã của mình. Thay vì có các số thô trôi nổi xung quanh mà chúng ta có thể vô tình thêm 0 vào, chúng ta có một hằng số được xác định trong enum không bao giờ được thay đổi Lợi ích của việc sử dụng enum ở đây sẽ là
NB. Một lợi ích thường bị bỏ qua là việc đặt tên cụ thể cho giá trị trong enum sẽ cho phép chúng tôi tìm kiếm tất cả các cách sử dụng giá trị đó trong mã. Số 7 có thể xuất hiện hàng nghìn lần, nhưng Những con số ma thuật được đánh giá quá cao Gặp phải những con số kỳ diệu trong mã không bao giờ là niềm vui. Điều này dường như tùy ý 2 nghĩa là gì? Nếu đây là một enum, thì giá trị có thể đã được đặt một cái tên tiết lộ ý định Sau khi đặt tên riêng cho giá trị này trong một enum, chúng ta có thể thấy ngay giá trị này đang được sử dụng để làm gì. Đặt tên một cái gì đó chính xác trong mã là quan trọng. Nó làm cho mọi thứ dễ đọc, suy luận và dễ hiểu hơn Như đã nói, việc có các số thô trong mã của chúng tôi không phải lúc nào cũng không thể giải mã được. Một số số phổ biến đến mức chúng tôi không thực sự cần làm nổi bật mục đích của chúng bằng tên, miễn là mã có thể tự giải thích được. Hãy xem xét những điều sau đây const dailyPay = hourlyRate * 8 Ta có thể thấy rõ ràng số 8 tượng trưng cho số giờ làm việc trong một ngày. Giá trị này không nhất thiết đảm bảo được đặt trong một enum Đảm bảo nó đông lạnh Một điều cần xem xét khi tạo một enum là đảm bảo rằng đối tượng bị đóng băng. Gọi số nguyên gốc Khi chúng ta gọi hàm này, chúng ta cần chuyển vào enum mới của mình và trạng thái hiện tại của nó sẽ bị đóng băng và được trả về. Nguyên mẫu của đối tượng cũng bị đóng băng. Không có thuộc tính nào có thể được sửa đổi, thêm hoặc xóa ngay bây giờ Choices.ROCK = 'paper' // Returns 'paper'console.log(Choices.ROCK) // Logs 'rock' Nếu bây giờ chúng ta cố gắng thay đổi đối tượng, giá trị mà chúng ta cố gán sẽ được trả về, nhưng trạng thái của đối tượng sẽ không bị thay đổi. Chúng ta có thể thấy điều này khi cố đăng xuất thuộc tính enum. Thuộc tính NB. Đóng băng chỉ áp dụng cho các thuộc tính lớp trên cùng. Các đối tượng lồng nhau sẽ vẫn có thể thay đổi Hãy cẩn thận với các giá trị được sử dụng Một điều đáng chú ý là đôi khi chúng ta có thể gặp phải một vấn đề tế nhị. Chúng ta nên cảnh giác với việc sử dụng các giá trị giả mạo JavaScript làm giá trị trong enum của mình. Chúng có thể gây ra những cơn đau đầu không cần thiết Vấn đề ở trên là enum của chúng ta đang sử dụng 0 làm giá trị cho tháng một. Đây là một giá trị giả trong JavaScript, có nghĩa là điều kiện chúng ta có sẽ đánh giá thành Thay vào đó, hãy cố gắng tránh gán các giá trị giả trong enums Ảnh của Simon Matzinger trên BaptCuối cùng cũng là một kết luậnSử dụng khái niệm enums trong JavaScript có nhiều lợi ích với ít nhược điểm. Mặc dù nó có thể không phù hợp với mọi trường hợp sử dụng, nhưng nó chắc chắn đạt được phần lớn trong số họ. Vậy tại sao không tận dụng chúng? Dưới đây là một số tài liệu tham khảo về các tài nguyên có thể thu hút sự quan tâm của bạn, nếu bạn muốn tìm hiểu thêm hoặc bắt đầu triển khai enum vào cơ sở mã của riêng mình, nếu bạn chưa làm như vậy Đối tượng MDN. Đông cứng() Cảm ơn bạn đã đọc. Tôi hy vọng bạn thích bài viết và học được điều gì đó. Nếu bạn tình cờ có bất kỳ phản hồi, phê bình hoặc đóng góp nào, vui lòng ghi lại chúng trong phần bình luận bên dưới Tại sao nên sử dụng enum trong JavaScript?Enums là một trong số ít các tính năng mà TypeScript có mà không phải là phần mở rộng cấp độ loại của JavaScript. Enums cho phép nhà phát triển xác định một tập hợp các hằng số được đặt tên . Sử dụng enums có thể giúp ghi lại ý định dễ dàng hơn hoặc tạo một tập hợp các trường hợp riêng biệt.
enum trong ví dụ JavaScript là gì?Enum là một kiểu dữ liệu trong các ngôn ngữ lập trình xác định một tập hợp các giá trị không đổi. Nó là một loại giá trị riêng biệt (i. e) tất cả các giá trị trong một enum là duy nhất. Sử dụng một enum làm cho mã có thể đọc được và có thể bảo trì được. Một số ví dụ về enum là tất cả các ngày trong tuần từ Thứ Hai đến Chủ Nhật, các cỡ áo phông như S, M, L, XL, v.v.
Làm cách nào để đọc giá trị enum trong JavaScript?Bảng liệt kê JavaScript . Nhận tất cả các giá trị enum được phép. Mục tiêu. keys(Direction) trả về một mảng ['Up', 'Down', 'Left', 'Right'] Kiểm tra xem một giá trị có bằng giá trị enum không. val === Hướng. Lên Kiểm tra xem một giá trị có trong enum không. Phương hướng. hasOwnProperty('Lên') Từ khóa enum trong JavaScript là gì?Từ khóa enum khai báo loại liệt kê (không thể thay đổi) . Một enum là một "lớp" đặc biệt đại diện cho một nhóm các hằng số (các biến không thể thay đổi, như các biến cuối cùng). |