Hướng dẫn typeof class javascript - loại lớp javascript
Show
Đã đăng vào thg 8 21, 2019 2:20 SA 1 phút đọc 1 phút đọc Toán tử 3 trả về một chuỗi là loại JavaScript cho một giá trị nhất định nào đó.Cách dùngĐể dùng 3 thì chúng ta sẽ có 2 cách sau:
Ví dụChúng ta sẽ bắt đầu với một vài ví dụ đơn giản sau:
Những ví dụ đơn giản trên cũng đủ để bạn có thể hiểu hơn về type trong JavsScript. Mảng và ObjectĐối với những mảng và object thì bạn sẽ nhận được kết quả là "object""object"
“object” is really just a generic label that’s used loosely for more sophisticated values in JavaScript. Giá trị rỗng (Empty values)Với những kết quả dưới đây có thể các bạn sẽ thấy khó hiểu:
Trong JavaScript thì 5 nó sẽ là 1 kiểu riêngConstructorsVì các constructors Class trong JavaScript chỉ là các hàm:
Kiểm tra kiểu cho các chức năngViệc thực hành kiểm tra kiểu trong lập trình có một lịch sử rất dài và cách chính để thực hiện điều này trong JavaScript là sử dụng toán tử typeof:
Điều này cho phép bạn đảm bảo rằng các đối số cho hàm add là các số và không phải là một chuỗi giống như một chuỗi (sẽ nối với nhau trong JavaScript). Kiểm tra kiểu trong JavaScript tạo mã ổn định hơn vì bạn đang xác định các quy tắc cơ bản rõ ràng để tương tác với ứng dụng của mình. Kiểm tra sự tồn tại (Existence Testing)Một cách khác mà bạn có thể sử dụng typeof là xác định sự tồn tại (existence) của một người có giá trị.existence) của một người có giá trị.
All rights reserved Đã đăng vào thg 11 27, 2017 6:11 CH 4 phút đọc 4 phút đọc Giới thiệuChắc hẳn đôi lúc bạn cũng đau đầu vì việc validate kiểu dữ liệu đầu vào cho function ở javascript đúng không? 2 hàm được sử dụng để check kiểu dữ liệu là typeof và instanceof. Trong bài viết này mình sẽ giới thiệu một số cách để làm cho hàm instanceof của javascript có thể làm được nhiều hơn việc check type so với hiện tại. Vấn đềSự phức tạp của typeof và instanceofTrong javascript, khi kiểm tra kiểu dữ liệu của 1 giá trị, có những cách thông thường là
Thêm nữa là vài thứ không minh bạch trong JS có thể làm vấn đề trở nên khá phức tạp, ví dụ
Sự không rõ ràng này, cùng với những thứ mơ hồ ở trên, làm cho việc kiểm tra loại dữ liệu của 1 biến không phải object (tức là primary type) trở nên không đơn giản thông qua typeof
Khắc phục1. Tạo instanceof cho kiểu dữ liệu nguyên thuỷ (primitive values)Ví dụ tạo ra 1 class để check xem có phải là kiểu dữ liệu số (number) không. Chúng ta tạo ra 1 class PrimitiveNumber, đoạn code dưới đây đơn giản return là kiểu số nếu typeof x === 'number' trả về true, chỉ cần implement 1 static method cho PrimitiveNumber mà key là symbol Symbol.hasInstancePrimitiveNumber, đoạn code dưới đây đơn giản return là kiểu số nếu typeof x === 'number' trả về true, chỉ cần implement 1 static method cho PrimitiveNumber mà key là symbol Symbol.hasInstance
2. Kiểm tra bằng cách dùng TypeRight libraryCó 1 thư viện hỗ trợ việc kiểm tra type khá đầy đủ và đơn giản đó chính là TypeRight library, các bạn có thể xem thêm ở đây https://github.com/rauschma/type-right Thư viện này sử dụng cách tiếp cận của ví dụ trên để code ra chức năng của những class dứới. Mục đích của nó là để hàm instanceof hoạt động 1 cách trơn tru mà không phải suy nghĩ quá nhiều là dữ liệu đầu vào là loại primitive hay object.TypeRight library, các bạn có thể xem thêm ở đây https://github.com/rauschma/type-right Thư viện này sử dụng cách tiếp cận của ví dụ trên để code ra chức năng của những class dứới. Mục đích của nó là để hàm instanceof hoạt động 1 cách trơn tru mà không phải suy nghĩ quá nhiều là dữ liệu đầu vào là loại primitive hay object. PrimitiveUndefined PrimitiveNull PrimitiveBoolean PrimitiveNumber PrimitiveString PrimitiveSymbol Với sự hỗ trợ của TypeRight, bạn có thể kiểm tra nếu biến có kiểu dữ liệu input đúng với hàm đã viết, nó sẽ throw error nếu dữ liệu input sai kiểu Với sự hỗ trợ của TypeRight, bạn có thể kiểm tra nếu biến có kiểu dữ liệu input đúng với hàm đã viết, nó sẽ throw error nếu dữ liệu input sai kiểu 03. Kiểm tra bằng BuiltinBuiltin.is và Builtin.typeOf được giới thiệu bởi James M.Snell dùng cho việc kiểu tra kiểu dữ liệu. Các bạn có thể tham khảo ở đây https://github.com/jasnell/proposal-istypes Builtin.is(value1, value2) kiểm tra nếu value1 và value2 cùng trỏ đến cùng 1 builtin constructor 1Builtin.typeOf() có thể là sự mở rộng của typeof mà dùng được cho cả primitive values và built-in classes 2Kết bàiNhư vậy là mình đã giới thiệu xong các phương pháp có thể dùng để thay thế hay bổ sung vào phương thức typeof và instanceof hiện tại của Javascript. Hy vọng nó sẽ có ích cho các bạn. Bài viết có sử dụng nguồn từ http://2ality.com/2017/08/type-right.html All rights reserved |