Hướng dẫn typeof javascript

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.

Hướng dẫn typeof javascript

Hướng dẫn typeof javascript

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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 [free tuts .net]

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

var number = 12;
var string = "12";
var object = new Number();

document.write("number: " + typeof number + "
"); document.write("string: " + typeof string + "
"); document.write("object: " + typeof object + "
");

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.

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.

Nội dung chính

  • 1. Từ khóa typeof trong Javascript
  • 2. Typeof null trong Javascript
  • 3. Lời kết
  • Cách dùng
  • Mảng và Object
  • Giá trị rỗng (Empty values)
  • Constructors
  • Kiểm tra kiểu cho các chức năng
  • Kiểm tra sự tồn tại (Existence Testing)

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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 [free tuts .net]

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
var number = 12;
var string = "12";
var object = new Number();

document.write("number: " + typeof number + "
"); document.write("string: " + typeof string + "
"); document.write("object: " + typeof object + "
");

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.

Đã đăng vào thg 8 21, 2019 2:20 SA 1 phút đọc

Toán tử typeof 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 typeof thì chúng ta sẽ có 2 cách sau:

typeof foo;
typeof(foo);

Ví dụ

Chúng ta sẽ bắt đầu với một vài ví dụ đơn giản sau:

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'

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"

typeof [1, 2, 'foobar'];   // 'object'
typeof {a: 'foobar'};      // '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:

typeof null;       // 'object'
typeof undefined;  // 'undefined' 

Trong JavaScript thì undefined nó sẽ là 1 kiểu riêng

Constructors

Vì các constructors Class trong JavaScript chỉ là các hàm:

typeof String;           // 'function'
typeof Boolean;          // 'function' 
typeof Number;           // 'function'
typeof Object;           // 'function'
typeof Function;         // 'function'
typeof MyAwesomeClass;   // 'function'  

Kiểm tra kiểu cho các chức năng

Việ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:

function add(a, b) {

  // perform type-checks...
  if (typeof a !== 'number' || typeof b !== 'number') {
    throw 'Arguments must be a number'
  };

  return a + b;
}

Đ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ị.

if (typeof window !== 'undefined') {
  // you're programming in JavaScript land!
};

if (typeof process !== 'undefined') {
  // Node.js!
}

if (typeof $ !== 'undefined') {
  // jQuery is available! 
}

All rights reserved