× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Type Conversions trong Javascript - Tìm hiểu chi tiết

20/06/2022 13:49

Hầu hết thời gian, các toán tử và hàm tự động chuyển đổi các giá trị được cung cấp cho chúng thành loại phù hợp. Trong bài viết này, cùng T3H tìm hiểu các thông tin về Type Conversions trong Javascript

Hầu hết thời gian, các toán tử và hàm tự động chuyển đổi các giá trị được cung cấp cho chúng thành loại phù hợp.

Ví dụ: alerttự động chuyển đổi bất kỳ giá trị nào thành một chuỗi để hiển thị nó. Các phép toán chuyển đổi giá trị thành số.

Cũng có những trường hợp khi chúng ta cần chuyển đổi rõ ràng một giá trị thành kiểu mong đợi.

Chuyển đổi chuỗi

Chuyển đổi chuỗi xảy ra khi chúng ta cần dạng chuỗi của một giá trị.

Ví dụ, alert(value)nó có hiển thị giá trị không.

Chúng ta cũng có thể gọi String(value)hàm để chuyển đổi một giá trị thành một chuỗi:

 
 
let value = true;
alert(typeof value); // boolean

value = String(value); // now value is a string "true"
alert(typeof value); // string

Chuyển đổi chuỗi chủ yếu là hiển nhiên. A falsetrở thành "false"nulltrở thành "null", v.v.

Chuyển đổi số

Chuyển đổi số xảy ra trong các hàm và biểu thức toán học một cách tự động.

Ví dụ: khi phép chia /được áp dụng cho các số không phải là số:

 
alert( "6" / "2" ); // 3, strings are converted to numbers

Chúng ta có thể sử dụng Number(value)hàm để chuyển đổi một cách rõ ràng valuemột số thành một số:

 
let str = "123";
alert(typeof str); // string

let num = Number(str); // becomes a number 123

alert(typeof num); // number

Chuyển đổi rõ ràng thường được yêu cầu khi chúng tôi đọc một giá trị từ nguồn dựa trên chuỗi như biểu mẫu văn bản nhưng mong đợi một số được nhập.

Nếu chuỗi không phải là một số hợp lệ, kết quả của một chuyển đổi như vậy là NaN. Ví dụ:

 
let age = Number("an arbitrary string instead of a number");

alert(age); // NaN, conversion failed

Quy tắc chuyển đổi dạng số:

Giá trị Trở thành…
undefined NaN
null 0
true and false 10
string Khoảng trắng từ đầu và cuối bị xóa. Nếu chuỗi còn lại trống, kết quả là 0. Nếu không, số được "đọc" từ chuỗi. Một lỗi đưa ra NaN.

Ví dụ:

 
alert( Number("   123   ") ); // 123
alert( Number("123z") );      // NaN (error reading a number at "z")
alert( Number(true) );        // 1
alert( Number(false) );       // 0

Xin lưu ý rằng nullvà undefinedcư xử khác ở đây: nulltrở thành 0 trong khi undefinedtrở thành NaN.

Hầu hết các toán tử toán học cũng thực hiện chuyển đổi như vậy, chúng ta sẽ thấy điều đó trong chương tiếp theo.

Chuyển đổi Boolean

Chuyển đổi Boolean là chuyển đổi đơn giản nhất.

Nó xảy ra trong các phép toán logic (sau này chúng ta sẽ gặp các bài kiểm tra điều kiện và những thứ tương tự khác) nhưng cũng có thể được thực hiện một cách rõ ràng với một lệnh gọi tới Boolean(value).

Quy tắc chuyển đổi:

  • Các giá trị “rỗng” về mặt trực quan, chẳng hạn như 0một chuỗi rỗng , và null, trở thành .undefinedNaNfalse
  • Các giá trị khác trở thành true.

Ví dụ:

 
alert( Boolean(1) ); // true
alert( Boolean(0) ); // false

alert( Boolean("hello") ); // true
alert( Boolean("") ); // false
Xin lưu ý: chuỗi có số 0 "0"true

Một số ngôn ngữ (cụ thể là PHP) coi "0"như false. Nhưng trong JavaScript, luôn luôn là một chuỗi không rỗng true.

alert( Boolean("0") ); // true
alert( Boolean(" ") ); // spaces, also true (any non-empty string is true)

Bản tóm tắt

Ba chuyển đổi kiểu được sử dụng rộng rãi nhất là sang chuỗi, thành số và boolean.

String Conversion- Xảy ra khi chúng ta xuất một thứ gì đó. Có thể được thực hiện với String(value). Việc chuyển đổi thành chuỗi thường là hiển nhiên đối với các giá trị nguyên thủy.

Numeric Conversion- Xảy ra trong các phép toán. Có thể được thực hiện với Number(value).

Việc chuyển đổi tuân theo các quy tắc:

Giá trị Trở thành…
undefined NaN
null 0
true / false 1 / 0
string Chuỗi được đọc “nguyên trạng”, khoảng trắng từ cả hai bên bị bỏ qua. Một chuỗi trống trở thành 0. Một lỗi đưa ra NaN.

Boolean Conversion- Xảy ra trong các phép toán logic. Có thể được thực hiện với Boolean(value).

Tuân theo các quy tắc:

Giá trị Trở thành…
0,,, nullundefinedNaN_"" false
bất kỳ giá trị nào khác true

Hầu hết các quy tắc này đều dễ hiểu và dễ ghi nhớ. Các trường hợp ngoại lệ đáng chú ý mà mọi người thường mắc lỗi là:

  • undefinedlà NaNmột con số, không phải 0.
  • "0"và các chuỗi chỉ có dấu cách như " "là true dưới dạng boolean.

>>> Tìm hiểu thêm thông tin khóa học lập trình cùng T3H ngay hôm nay!