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ụ: alert
tự độ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 false
trở thành "false"
, null
trở 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 value
mộ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 |
1 và0 |
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 null
và undefined
cư xử khác ở đây: null
trở thành 0 trong khi undefined
trở 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ư
0
một chuỗi rỗng , vànull
, trở thành .undefined
NaN
false
- 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
"0"
là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 ,,, null _ undefined _ NaN _"" |
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à:
undefined
làNaN
một con số, không phải0
."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!