Trong bài này chúng ta sẽ tìm hiểu từ khóa typeof trong Javascript, từ khóa này dùng để kiểm tra kiểu dữ liệu của một biến bất kì trong Javascript.
Trong quá trình làm việc với javascript, đôi lúc bạn muốn kiểm tra xem một biến đang có kiểu dữ liệu là gì, qua đó sẽ giúp bạn kiểm soát được lỗi dữ liệu không đồng nhất. Từ khóa này giúp lập trình viên tiết kiệm nhiều thời gian trong việc debug, và nó thường đi kèm với hàm console.log()
.
1. Từ khóa typeof trong Javascript
Từ khóa typeof
được dùng để kiểm tra kiểu dữ liệu của một biến nào đó (hoặc một giá trị nào đó).
Cú pháp của nó khá đơn giản như sau:
Bài viết này được đăng tại [kiso.vn]
var x = typeof value;
Trong đó value
có thể là một biến hoặc một giá trị xác định.
Dưới đây là tên một số kiểu dữ liệu và giá trị trả về tương ứng:
number
– là các chữ sốstring
– là các chuỗiobject
– là các đối tượngundefined
– không xác địnhboolean
– là kiểu booleansymbol
– là kiểu Symboy – có từ ES6 trở lênfunction
– là một function
var number = 12; var string = "12"; var object = new Number(); document.write("number: " + typeof number + "<br/>"); document.write("string: " + typeof string + "<br/>"); document.write("object: " + typeof object + "<br/>");
Trong PHP để kiểm tra một biến nào đó có tồn tại hay không thì ta dùng hàm isset(), còn trong Javascript thì ta dùng hàm typeof
kết hợp với kiểu dữ liệu undefined
. Nghĩa là nếu kiểu dữ liệu của một biến nào đó là undefined
thì tức là biến đó chưa được định nghĩa hoặc giá trị của nó không xác định.
if (typeof variable == 'undefined'){ document.write("Biến variable không được định nghĩa"); }
Hàm typeof trong Javascript có đúng là một hàm không?
Theo định nghĩa của mozilla.org thì typeof chính xác là một từ khóa (keyword), nó không phải là một hàm bởi cấu trúc của một hàm là khi gọi phải có cặp mở đóng
()
.
Một ví dụ tổng hợp khác.
typeof true; // 'boolean' typeof false; // 'boolean' typeof 3000; // 'number' typeof 3.14; // 'number' typeof NaN; // 'number' typeof Infinity; // 'number' typeof 'foobar'; // 'string' typeof `foobar`; // 'string'
2. Typeof null trong Javascript
Giá trị null là một object nên khi kết hợp với từ khóa typeof thì nó sẽ trả về giá trị “object”.
console.log(typeof null === 'object'); // true console.log(typeof null === 'null'); // false
3. Lời kết
Trên là một số vấn đề liên quan đến từ khóa typeof trong Javascript, mục đích mình viết bài này là để các bài sau sử dụng lại hàm này và mình không mất công giải thích nữa. Còn một điều nữa là hàm typeof thường được dùng để kiểm tra trình duyệt có hỗ trợ một đối tượng nào đó hay không, ví dụ như localStorage trong HTML5.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Từ khóa typeof trong Javascript2. Typeof null trong...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Từ khóa typeof trong Javascript2. Typeof null trong Javascript3. Lời kết1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Từ khóa typeof trong Javascript2. Typeof null trong Javascript3. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Từ khóa typeof trong Javascript2. Typeof null trong Javascript3. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Từ khóa typeof trong Javascript2. Typeof null trong Javascript3. Lời kếtIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ...