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:

1
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ỗi
  • object - là các đối tượng
  • undefined - không xác định
  • boolean - là kiểu boolean
  • symbol - là kiểu Symboy - có từ ES6 trở lên
  • function - là một function
1
2
3
4
5
6
7
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.

1
2
3
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.

1
2
3
4
5
6
7
8
9
10
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".

1
2
console.log(typeof null === 'object'); // true
console.log(typeof null === 'null'); // false