Thứ ba, 15/08/2017 | 00:00 GMT+7

Cách chuyển đổi kiểu dữ liệu trong JavaScript

Trong JavaScript, các kiểu dữ liệu được sử dụng để phân loại một loại dữ liệu cụ thể, xác định các giá trị mà bạn có thể gán cho loại và các thao tác bạn có thể thực hiện trên nó.

Mặc dù do ép buộc kiểu , JavaScript sẽ tự động chuyển đổi nhiều giá trị, cách tốt nhất là chuyển đổi thủ công các giá trị giữa các kiểu để đạt được kết quả mong đợi.

Hướng dẫn này sẽ hướng dẫn bạn chuyển đổi các kiểu dữ liệu nguyên thủy của JavaScript, bao gồm số, chuỗi và Boolean.

Chuyển đổi ngầm định

Là một ngôn ngữ lập trình, JavaScript rất dễ chịu những giá trị không mong muốn. Do đó, JavaScript sẽ cố gắng chuyển đổi các giá trị không mong muốn thay vì từ chối chúng hoàn toàn. Chuyển đổi ngầm này được gọi là cưỡng chế kiểu.

Một số phương thức sẽ tự động chuyển đổi các giá trị để sử dụng chúng. Phương thức alert() nhận một chuỗi làm tham số của nó, nhưng nó sẽ tự động chuyển đổi các kiểu khác thành chuỗi. Vì vậy, ta có thể chuyển một giá trị số cho phương thức:

alert(8.5); 

Nếu ta chạy dòng trên, trình duyệt sẽ trả về một hộp thoại cảnh báo bật lên hiển thị giá trị 8.5 ngoại trừ nó sẽ được chuyển đổi thành một chuỗi để thực hiện .

Khi sử dụng các chuỗi có thể được đánh giá thành số bằng các toán tử toán học , bạn sẽ thấy rằng JavaScript có thể xử lý các giá trị bằng cách chuyển đổi ngầm các chuỗi thành số, như thể hiện trong các ví dụ bên dưới.

// Subtraction "15" - "10"; 
Output
5
// Modulo "15" % "10"; 
Output
5

Tuy nhiên, không phải nhà điều hành nào cũng hoạt động như mong đợi. Toán tử + đáng chú ý là có vấn đề vì nó có thể biểu thị thêm hoặc nối chuỗi .

// When working with strings, + stands for concatenation "2" + "3"; 
Output
"23"

Vì toán tử + là đa mục đích, các giá trị chuỗi 23 , mặc dù là chuỗi số, được nối với giá trị chuỗi 23 thay vì cộng với nhau để thành số 5 .

Bởi vì sự mơ hồ có thể tồn tại và đôi khi gây ra kết quả không mong muốn, nên tốt nhất bạn nên chuyển đổi rõ ràng các loại dữ liệu trong mã của bạn càng nhiều càng tốt. Điều này sẽ giúp quản lý đầu vào từ user và xử lý lỗi.

Chuyển đổi giá trị thành chuỗi

Giá trị có thể được chuyển đổi rõ ràng thành chuỗi bằng cách gọi String() hoặc n.toString() .

Với hàm String() , hãy chuyển đổi giá trị Boolean thành một chuỗi bằng cách chuyển giá trị true vào các tham số cho String() .

String(true); 

Khi ta làm điều này, chuỗi theo nghĩa đen "true" sẽ được trả về.

Output
"true"

Ngoài ra, ta có thể truyền một số vào hàm.

String(49); 

Một chuỗi ký tự của số đó sẽ được trả về.

Output
"49"

Hãy sử dụng hàm String() với một biến. Ta sẽ gán một giá trị số cho biến odyssey và sau đó sử dụng toán tử typeof để kiểm tra loại.

let odyssey = 2001; console.log(typeof odyssey); 
Output
number

Đến đây, biến odyssey được gán giá trị số của 2001 , mà ta đã xác nhận là một số.

Bây giờ, hãy gán lại odyssey cho chuỗi tương đương của nó và sau đó sử dụng typeof để xác nhận ta đã chuyển đổi thành công giá trị của biến từ một số thành một chuỗi.

odyssey = String(odyssey);  // "2001" console.log(typeof odyssey); 
Output
string

Trong ví dụ trên, ta đã xác nhận odyssey đã được gán lại để tương đương với một giá trị chuỗi sau khi chuyển đổi kiểu dữ liệu.

Ta có thể sử dụng n.toString() theo cách tương tự. Ta có thể thay thế n bằng một biến:

let blows = 400; blows.toString(); 

Các blows thay đổi sẽ được trả về dưới dạng một chuỗi.

Output
"400"

Ngoài ra, ta có thể đặt một giá trị trong dấu ngoặc đơn hơn là một biến với n.toString() :

(1776).toString();          // returns "1776" (false).toString();         // returns "false" (100 + 200).toString();     // returns "300" 

Bằng cách sử dụng String() hoặc n.toString() ta có thể chuyển đổi rõ ràng các giá trị của kiểu dữ liệu Boolean hoặc số thành các giá trị chuỗi đảm bảo rằng mã của ta hoạt động như ta dự đoán.

Chuyển đổi giá trị thành số

Khi chuyển đổi giá trị thành kiểu dữ liệu số, ta sẽ sử dụng phương thức Number() . Về cơ bản, ta sẽ chuyển đổi các chuỗi văn bản số thành số, nhưng ta cũng có thể chuyển đổi các giá trị Boolean.

Ta có thể chuyển một chuỗi số vào phương thức Number() :

Number("1984"); 

Chuỗi sẽ được chuyển đổi thành một số và không còn được đặt trong dấu ngoặc kép.

Output
1984

Ta cũng có thể gán một chuỗi cho một biến và sau đó chuyển đổi nó.

let dalmatians = "101"; Number(dalmatians); 
Output
101

Chuỗi ký tự "101" đã được chuyển đổi thành số 101 thông qua biến của nó.

Các chuỗi khoảng trắng hoặc chuỗi trống sẽ chuyển thành 0 .

Number(" ");    // returns 0 Number("");     // returns 0 

Lưu ý các chuỗi không phải số sẽ chuyển đổi thành NaN , viết tắt của N ot a N umber. Điều này bao gồm các số được phân tách bằng dấu cách.

Number("twelve");   // returns NaN Number("20,000");   // returns NaN Number("2 3");      // returns NaN Number("11-11-11"); // returns NaN 

Đối với kiểu dữ liệu Boolean, false sẽ đánh giá thành 0true sẽ đánh giá thành 1 .

Number(false);      // returns 0 Number(true);       // returns 1 

Phương thức Number() chuyển đổi kiểu dữ liệu không phải số thành số.

Chuyển đổi giá trị thành Boolean

Để chuyển đổi số hoặc chuỗi thành giá trị Boolean, phương thức Boolean() được sử dụng. Ví dụ, điều này có thể hữu ích để xác định xem user có nhập dữ liệu vào trường văn bản hay không.

Bất kỳ giá trị nào được hiểu là trống, như số 0 , chuỗi trống hoặc các giá trị không được xác định hoặc NaN hoặc null đều được chuyển đổi thành false .

Boolean(0);         // returns false Boolean("");        // returns false Boolean(undefined); // returns false Boolean(NaN);       // returns false Boolean(null);      // returns false 

Các giá trị khác sẽ được chuyển đổi thành true , bao gồm các ký tự chuỗi bao gồm khoảng trắng.

Boolean(2000);      // returns true Boolean(" ");       // returns true Boolean("Maniacs"); // returns true 

Lưu ý "0" dưới dạng một chuỗi ký tự sẽ chuyển đổi thành true vì nó là một giá trị chuỗi không rỗng:

Boolean("0");   // returns true 

Việc chuyển đổi số và chuỗi thành giá trị Boolean có thể cho phép ta đánh giá dữ liệu trong điều kiện binary và có thể được tận dụng cho stream điều khiển trong các chương trình của ta .

Kết luận

Hướng dẫn này sẽ JavaScript xử lý việc chuyển đổi các kiểu dữ liệu nguyên thủy của nó. Mặc dù do ép buộc kiểu, các kiểu dữ liệu sẽ chuyển đổi ngầm trong nhiều trường hợp, nhưng thói quen tốt là chuyển đổi kiểu dữ liệu một cách rõ ràng đảm bảo rằng các chương trình đang hoạt động như mong đợi.

Để tìm hiểu thêm về các loại dữ liệu của JavaScript, hãy đọc “ Hiểu các loại dữ liệu trong JavaScript ”. Để xem cách chuyển đổi kiểu dữ liệu được thực hiện trong các ngôn ngữ lập trình khác, hãy xem “ Cách chuyển đổi kiểu dữ liệu trong Python 3 ”.


Tags:

Các tin liên quan

Cách sử dụng phương thức mảng trong JavaScript: Phương thức lặp lại
2017-08-15
Cách sử dụng các phương thức mảng trong JavaScript: Phương thức Accessor
2017-08-14
Cách sử dụng phương thức mảng trong JavaScript: Phương thức đột biến
2017-08-10
Cách viết chương trình JavaScript đầu tiên của bạn
2017-08-02
Hiểu mảng trong JavaScript
2017-07-28
Làm thế nào để làm toán trong JavaScript với các toán tử
2017-07-20
Cách lập chỉ mục, tách và thao tác chuỗi trong JavaScript
2017-07-14
Object.values và Object.entries trong JavaScript
2017-07-12
Cách làm việc với chuỗi trong JavaScript
2017-07-11
Giới thiệu về Maps bằng JavaScript
2017-07-06