Chuyển đổi trường hợp trong đối tượng JavaScript

Trong quá trình phát triển, chúng tôi sử dụng các đối tượng và chúng tôi luôn nhầm lẫn cách tiếp cận nào là tốt nhất. Đó là lý do chính khiến tôi quyết định viết một blog về nó, vì vậy tôi thực sự hy vọng trong tương lai gần, hầu hết các trở ngại của bạn sẽ được giải quyết và bạn sẽ tự tin hơn trong việc lựa chọn cách tiếp cận tốt nhất.

Trong blog này, tôi sẽ giải thích một số tính năng của đối tượng và tôi sẽ thực hiện một số so sánh, vì vậy hãy bắt đầu

Chuyển đổi so với đối tượng chữ

Chúng ta đều biết câu lệnh switch – case là gì và chúng ta đã sử dụng chúng ít nhất một lần trong đời, bất kể là ngôn ngữ lập trình nào. Nhưng vì chúng ta đang nói về JavaScript, bạn đã bao giờ tự hỏi liệu sử dụng nó có thông minh không?

Vâng, tất nhiên, câu trả lời là KHÔNG. Bây giờ bạn đang tự hỏi mình, thì đó phải là câu lệnh if-else, nhưng câu trả lời vẫn là KHÔNG. Cách tiếp cận tốt nhất là sử dụng các đối tượng

Hãy xem tại sao…

Các vấn đề

  • vỏ công tắc
    • Khó bảo trì dẫn đến việc gỡ lỗi và kiểm tra khó khăn
    • Bạn buộc phải sử dụng break theo cách thủ công trong từng trường hợp
    • lỗi lồng nhau
    • Các hạn chế, như không cho phép dùng cùng một hằng trong hai trường hợp khác nhau…
    • Trong JavaScript, mọi thứ đều dựa trên dấu ngoặc nhọn, nhưng không chuyển đổi
    • Đánh giá mọi trường hợp cho đến khi tìm được trường hợp phù hợp
  • Câu lệnh if-else
    • Khó bảo trì dẫn đến việc gỡ lỗi và kiểm tra khó khăn
    • Khó hiểu khi có logic phức tạp
    • khó kiểm tra
    • Đánh giá mọi câu lệnh cho đến khi tìm được câu đúng nếu bạn không kết thúc câu đó một cách rõ ràng

Theo những vấn đề này, giải pháp tốt nhất là các đối tượng. Lý do cho điều đó là những lợi thế mà các đối tượng đang cung cấp cho chúng tôi, như

  • Bạn không bị buộc phải làm bất cứ điều gì
  • Bạn có thể sử dụng các chức năng bên trong các đối tượng, điều đó có nghĩa là bạn linh hoạt hơn nhiều
  • Bạn có thể sử dụng lợi ích đóng cửa
  • Bạn đang sử dụng các đối tượng JavaScript tiêu chuẩn, giúp mã thân thiện hơn
  • Cung cấp cho bạn khả năng đọc và bảo trì tốt hơn
  • Vì cách tiếp cận các đối tượng giống như một bảng băm nên hiệu suất sẽ tốt hơn so với chi phí trung bình của trường hợp chuyển đổi
  • Tất cả những ưu điểm này dẫn chúng ta đến kết luận rằng các đối tượng tự nhiên hơn và là một phần của nhiều mẫu thiết kế trong JavaScript trong đó trường hợp chuyển đổi là một cách mã hóa cũ

Hãy xem một ví dụ với các đối tượng trông như thế nào


 




hasOwnProperty(key) so với trong

hasOwnProperty() – phương thức chỉ trả về Boolean hoặc true nếu đối tượng chứa thuộc tính đó làm thuộc tính riêng của nó

in – toán tử chỉ trả về Boolean hoặc true nếu đối tượng chứa thuộc tính đó làm thuộc tính riêng của nó hoặc trong chuỗi nguyên mẫu của nó

function TestObj(){
      this.name = 'TestName';
}
TestObj.prototype.gender = 'male';

var obj = new TestObj();

console.log(obj.hasOwnProperty('name'));       // true
console.log('name' in obj);                    // true
console.log(obj.hasOwnProperty('gender'));     // false 
console.log('gender' in obj);                  // true

Thuộc tính đối tượng

Có hai cách. ký hiệu dấu chấm và ký hiệu dấu ngoặc. Hầu hết các nhà phát triển thường tự hỏi họ nên sử dụng cách tiếp cận nào hoặc có thể có bất kỳ sự khác biệt nào không? . Hãy làm một cái nhìn tổng quan

ký hiệu dấu chấm

  • s chỉ có thể là chữ và số, có nghĩa là nó chỉ có thể bao gồm hai ký tự đặc biệt “_” và “$”
  • Mã định danh thuộc tính không thể bắt đầu bằng số và biến

ký hiệu khung

  • Định danh thuộc tính phải là Chuỗi hoặc biến tham chiếu đến Chuỗi
  • Mã định danh thuộc tính có thể chứa bất kỳ ký tự nào trong tên của chúng

var obj = {
      '$test': 'DolarValue',
      '%test': 'PercentageValue'
      …
}

console.log(obj["$test"])                      // 'DolarValue'
console.log(obj.$test)                          // 'DolarValue'

Cả hai sẽ cho cùng một kết quả vì cả hai đều hỗ trợ `$` trong tên của chúng, nhưng điều gì xảy ra nếu chúng ta sử dụng một ký tự đặc biệt khác như `%`?

console.log(obj["%test"])    // 'PercentageValue'
console.log(obj.%test)       // It will throw an error:              
                            Uncaught SyntaxError: Unexpected token ‘%’

Trong blog tiếp theo, tôi sẽ đề cập đến việc tối ưu hóa vòng lặp bằng cách sử dụng thuộc tính đối tượng và kiểm tra tốc độ mã

Làm cách nào để sử dụng trường hợp chuyển đổi cho đối tượng trong JavaScript?

Cách chuyển đổi chữ hoa chữ thường thành đối tượng trong JavaScript .
Trong JavaScript, chúng tôi sử dụng trường hợp chuyển đổi ở nơi chúng tôi cần xử lý nhiều if. khác nếu. khác nếu. .
Câu lệnh if ở trên có thể được thay thế bằng. .
Bạn có thể thay thế câu lệnh chuyển đổi ở trên bằng chữ Object. .
ví dụ. .
chức năng xử lý

Chúng ta có thể sử dụng đối tượng trong trường hợp chuyển đổi không?

May mắn thay, Các ký tự đối tượng của JavaScript là một giải pháp thay thế khá tốt cho hầu hết các trường hợp sử dụng câu lệnh chuyển đổi mà tôi có thể nghĩ ra . Ý tưởng là xác định một đối tượng có khóa cho từng trường hợp bạn sẽ có trong câu lệnh chuyển đổi. Sau đó, bạn có thể truy cập trực tiếp giá trị của nó bằng cách sử dụng biểu thức mà bạn sẽ chuyển đến câu lệnh chuyển đổi.

Bạn có thể sử dụng trường hợp chuyển đổi trong JavaScript không?

Ngoài if. other , JavaScript có một tính năng được gọi là câu lệnh chuyển đổi . chuyển đổi là một loại câu lệnh có điều kiện sẽ đánh giá một biểu thức dựa trên nhiều trường hợp có thể xảy ra và thực thi một hoặc nhiều khối mã dựa trên các trường hợp phù hợp.

Làm cách nào để lấy khóa từ đối tượng trong JavaScript?

Làm cách nào để lấy Khóa, Giá trị và Mục nhập trong Đối tượng JavaScript? .
Sự vật. keys(obj) – trả về tất cả các khóa của đối tượng dưới dạng mảng
Sự vật. giá trị (obj) – trả về tất cả các giá trị của đối tượng dưới dạng mảng
Sự vật. entry(obj) – trả về một mảng [key, value]