Hướng dẫn get enum value in javascript - nhận giá trị enum trong javascript
Trong mã JavaScript, tôi có các enum được xác định sau: Show
Trong hàm JavaScript, tôi muốn có thể cung cấp biểu diễn chuỗi của khóa Enum (tức là "MoveID") và trả về giá trị số nguyên của nó là 4. Vậy làm thế nào tôi có thể làm điều này? Được hỏi ngày 17 tháng 9 năm 2016 lúc 20:46Sep 17, 2016 at 20:46
Chuckpchuckpchuckp 2631 Huy hiệu vàng2 Huy hiệu bạc15 Huy hiệu đồng1 gold badge2 silver badges15 bronze badges 3 Chỉ cần sử dụng ký hiệu khung:
Đã trả lời ngày 19 tháng 9 năm 2016 lúc 17:33Sep 19, 2016 at 17:33
Baaobaaobaao 68.6K16 Huy hiệu vàng131 Huy hiệu bạc187 Huy hiệu đồng16 gold badges131 silver badges187 bronze badges 1 Bạn có thể tạo một số phương thức tiện ích lấy một đối tượng (enum) tìm ra cách lấy các khóa/giá trị.
Bạn cũng có thể tạo đối tượng lớp của riêng mình để thể hiện một enum có các phương thức có thể tái sử dụng.
Đã trả lời ngày 19 tháng 9 năm 2016 lúc 18:11Sep 19, 2016 at 18:11
Ông Polywhirlmr. PolywhirlMr. Polywhirl 37.3K12 Huy hiệu vàng80 Huy hiệu bạc127 Huy hiệu đồng12 gold badges80 silver badges127 bronze badges 2 Enums là một trong số ít các tính năng TypeScript không phải là phần mở rộng cấp độ của JavaScript. Enums cho phép một 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 dễ dàng ghi lại ý định hoặc tạo ra một tập hợp các trường hợp riêng biệt. TypeScript cung cấp cả enum dựa trên số và chuỗi. Enum sốTrước tiên, chúng tôi sẽ bắt đầu với các enum số, có lẽ quen thuộc hơn nếu bạn đến từ các ngôn ngữ khác. Một enum có thể được xác định bằng cách sử dụng từ khóa 5.
Ở trên, chúng tôi có một enum số trong đó 6 được khởi tạo với 7. Tất cả các thành viên sau đây được tự động tăng từ thời điểm đó. Nói cách khác, 8 có giá trị 7, 0 có 1, 2 có 3 và 4 có 5.Nếu chúng tôi muốn, chúng tôi có thể bỏ hoàn toàn các bộ khởi tạo:
Ở đây, 6 sẽ có giá trị 7, 0 sẽ có 7, v.v. enum.Sử dụng enum rất đơn giản: Chỉ cần truy cập bất kỳ thành viên nào làm thuộc tính của chính Enum và khai báo các loại bằng tên của Enum:
Các enum số có thể được trộn trong các thành viên được tính toán và không đổi (xem bên dưới). Truyện ngắn là, các enum mà không cần khởi tạo hoặc cần phải là người đầu tiên hoặc phải đến sau khi các enum số được khởi tạo với các hằng số số hoặc các thành viên enum không đổi khác. Nói cách khác, những điều sau đây được cho phép:
Chuỗi enumsCác enum chuỗi là một khái niệm tương tự, nhưng có một số khác biệt thời gian chạy tinh tế như được ghi lại dưới đây. Trong một chuỗi enum, mỗi thành viên phải được khởi tạo không đổi với một chuỗi theo nghĩa đen hoặc với một thành viên enum chuỗi khác.
Trong khi các enum chuỗi don don có hành vi tự động nâng cấp, các enum chuỗi có lợi ích mà họ đã tuần tự hóa tốt. Nói cách khác, nếu bạn đang gỡ lỗi và phải đọc giá trị thời gian chạy của một enum số, giá trị thường mờ đục - nó không tự nó truyền đạt bất kỳ ý nghĩa hữu ích nào (mặc dù ánh xạ ngược thường có thể giúp ích). Các enum chuỗi cho phép bạn đưa ra một giá trị có ý nghĩa và có thể đọc được khi mã của bạn chạy, độc lập với tên của chính thành viên enum. Enums không đồng nhấtCác enum về mặt kỹ thuật có thể được trộn lẫn với các thành viên chuỗi và số, nhưng nó không rõ lý do tại sao bạn muốn làm như vậy:
Trừ khi bạn thực sự cố gắng tận dụng hành vi thời gian chạy của JavaScript, một cách thông minh, thì bạn khuyên bạn nên làm điều này. Thành viên được tính toán và liên tụcMỗi thành viên enum có một giá trị liên quan đến nó có thể là hằng số hoặc được tính toán. Một thành viên enum được coi là không đổi nếu:
Trong tất cả các trường hợp khác, thành viên enum được coi là tính toán. 2Liên minh enum và các loại thành viên enumCó một tập hợp con đặc biệt của các thành viên enum liên tục mà aren tính toán: các thành viên enum theo nghĩa đen. Thành viên enum theo nghĩa đen là thành viên enum không đổi không có giá trị khởi tạo hoặc với các giá trị được khởi tạo thành
Khi tất cả các thành viên trong một enum có các giá trị enum theo nghĩa đen, một số ngữ nghĩa đặc biệt xuất hiện. Đầu tiên là các thành viên Enum cũng trở thành loại! Ví dụ: chúng ta có thể nói rằng một số thành viên nhất định chỉ có thể có giá trị của một thành viên enum: 3Thay đổi khác là bản thân các loại enum có hiệu quả trở thành một liên minh của mỗi thành viên enum. Với các enum của công đoàn, hệ thống loại có thể tận dụng thực tế là nó biết chính xác các giá trị tồn tại trong chính Enum. Do đó, TypeScript có thể bắt các lỗi nơi chúng ta có thể so sánh các giá trị không chính xác. Ví dụ: 4Trong ví dụ đó, trước tiên chúng tôi đã kiểm tra xem 4 không phải là 5. Nếu kiểm tra đó thành công, thì 6 của chúng tôi sẽ ngắn mạch và thân máy của ‘nếu có thể chạy. Tuy nhiên, nếu séc không thành công, thì 4 chỉ có thể là 5, do đó, nó không có ý nghĩa gì để xem liệu nó có bằng 9 hay không. Enums khi chạyEnums là các đối tượng thực sự tồn tại trong thời gian chạy. Ví dụ: enum sau đây 5thực sự có thể được truyền lại cho các chức năng 6Enums tại thời điểm biên dịchMặc dù các enum là các đối tượng thực sự tồn tại trong thời gian chạy, từ khóa ____70 hoạt động khác với bạn có thể mong đợi cho các đối tượng điển hình. Thay vào đó, hãy sử dụng 1 để có được một loại đại diện cho tất cả các khóa Enum dưới dạng chuỗi. 7Ánh xạ ngượcNgoài việc tạo một đối tượng có tên thuộc tính cho các thành viên, các thành viên enum số cũng nhận được ánh xạ ngược từ các giá trị enum sang tên enum. Ví dụ, trong ví dụ này: 8TypeScript biên dịch điều này xuống JavaScript sau: 9Trong mã được tạo này, một enum được biên dịch thành một đối tượng lưu trữ cả hai ánh xạ ( 2 -> 3) và ngược ( 3 -> 2). Các tài liệu tham khảo cho các thành viên ENUM khác luôn được phát ra dưới dạng quyền truy cập tài sản và không bao giờ được đưa vào. Hãy nhớ rằng các thành viên chuỗi enum không nhận được ánh xạ ngược được tạo ra. tsenum E { A = getSomeValue(), B,Enum member must have initializer.1061Enum member must have initializer.} (adsbygoogle = window.adsbygoogle || []).push({}); Try6 EnumsTrong hầu hết các trường hợp, Enums là một giải pháp hoàn toàn hợp lệ. Tuy nhiên, đôi khi các yêu cầu chặt chẽ hơn. Để tránh thanh toán chi phí của mã được tạo thêm và Indirection bổ sung khi truy cập các giá trị Enum, bạn có thể sử dụng 6 Enums. Các enum const được xác định bằng cách sử dụng công cụ sửa đổi 6 trên enum của chúng tôi: 0Const enum chỉ có thể sử dụng các biểu thức enum không đổi và không giống như các enum thông thường, chúng hoàn toàn bị loại bỏ trong quá trình biên dịch. Các thành viên Const Enum được đưa vào các trang web sử dụng. Điều này là có thể vì các enum const không thể tính toán thành viên. 1Trong mã được tạo sẽ trở thành 2Const enum cạm bẫyCác giá trị enum nội tuyến lúc đầu là đơn giản, nhưng đi kèm với ý nghĩa tinh tế. Những cạm bẫy này chỉ liên quan đến các enum const xung quanh (về cơ bản là các tệp trong các tệp 9) và chia sẻ chúng giữa các dự án, nhưng nếu bạn đang xuất bản hoặc tiêu thụ các tệp ____79, những cạm bẫy này có thể áp dụng cho bạn, vì 1 chuyển đổi các tệp 2 vào các tệp 9.
Dưới đây là hai cách tiếp cận để tránh những cạm bẫy này: A. Không sử dụng enum const. Bạn có thể dễ dàng cấm các const enums với sự trợ giúp của một linter. Rõ ràng điều này tránh mọi vấn đề với enums const, nhưng ngăn dự án của bạn nội tuyến của chính nó. Không giống như các enum nội tuyến từ các dự án khác, việc nội tuyến của một dự án riêng của dự án không có vấn đề gì và có ý nghĩa về hiệu suất. B. Không xuất bản các enum const xung quanh, bằng cách giải mã chúng với sự trợ giúp của 9. Đây là cách tiếp cận được thực hiện trong nội bộ bởi chính dự án TypeScript. 9 phát ra cùng một JavaScript cho các enum const như các enum đơn giản. Sau đó, bạn có thể loại bỏ một cách an toàn công cụ sửa đổi 6 từ các tệp 9 trong một bước xây dựng. Theo cách này, người tiêu dùng hạ nguồn sẽ không liên kết với dự án của bạn, tránh những cạm bẫy ở trên, nhưng một dự án vẫn có thể in tuyến chính của mình, không giống như cấm hoàn toàn const. Enums xung quanhCác enum xung quanh được sử dụng để mô tả hình dạng của các loại enum đã có. 3Một sự khác biệt quan trọng giữa các enum môi trường xung quanh và không mơ hồ là, trong các enum thường xuyên, các thành viên không có bộ khởi tạo sẽ được coi là không đổi nếu thành viên enum trước đó được coi là không đổi. Ngược lại, một thành viên enum môi trường xung quanh (và không phải là trước) không có trình khởi tạo luôn được coi là tính toán. Đối tượng vs EnumsTrong TypeScript hiện đại, bạn có thể không cần một enum khi một đối tượng có 3 có thể đủ: 4Đối số lớn nhất có lợi cho định dạng này so với TypeScript, 5 là nó giữ cho cơ sở mã của bạn phù hợp với trạng thái của JavaScript và khi/nếu được thêm vào JavaScript thì bạn có thể chuyển sang cú pháp bổ sung.
Tôi có thể sử dụng enum trong javascript không?Các loại được liệt kê hoặc các loại được liệt kê là các loại dữ liệu đặc biệt đặt các biến thành một tập hợp các hằng số được xác định trước. Trong các ngôn ngữ khác các loại dữ liệu được liệt kê được cung cấp để sử dụng trong ứng dụng này. JavaScript không có các loại enum trực tiếp trong đó, nhưng chúng tôi có thể thực hiện các loại tương tự như Enums thông qua JavaScript.Javascript does not have enum types directly in it, but we can implement similar types like enums through javascript.
Giá trị enum là gì?Phương thức valueOf () trả về hằng số enum của enumType được chỉ định với tên được chỉ định.Tên phải khớp chính xác một định danh được sử dụng để khai báo hằng số enum trong loại này.returns the enum constant of the specified enumtype with the specified name. The name must match exactly an identifier used to declare an enum constant in this type.
Enum ts là gì?Trong các loại bản thảo, enum hoặc các loại được liệt kê, là các cấu trúc dữ liệu có độ dài không đổi chứa một tập hợp các giá trị không đổi.Mỗi giá trị không đổi này được gọi là thành viên của enum.Enums rất hữu ích khi cài đặt các thuộc tính hoặc giá trị chỉ có thể là một số giá trị có thể nhất định.data structures of constant length that hold a set of constant values. Each of these constant values is known as a member of the enum. Enums are useful when setting properties or values that can only be a certain number of possible values.
Có thể được Array không?Enums là loại giá trị (thường là int32).Giống như bất kỳ giá trị số nguyên nào, bạn có thể truy cập một mảng với các giá trị của chúng.Các giá trị enum được đặt hàng bắt đầu bằng 0, dựa trên thứ tự văn bản của chúng.Messagetype Chúng tôi thấy Messagetype Enum, đây là một loạt các giá trị INT bạn có thể truy cập với các hằng số được kích hoạt mạnh mẽ.you can access an array with their values. Enum values are ordered starting with zero, based on their textual order. MessageType We see the MessageType enum, which is a series of int values you can access with strongly-typed named constants. |