JavaScript 和 TypeScript 中的型別轉換
本文將討論使用不同的 JavaScript 和 TypeScript 方法進行型別轉換或型別轉換。
在 JavaScript 中執行型別轉換有兩種方法:隱式和顯式。
JavaScript 中的隱式轉換
如果 JavaScript 將給定的資料型別識別為錯誤的,它會自動將其重新轉換為正確的型別。這個過程稱為隱式轉換。
JavaScript 可以通過以下方式進行隱式型別轉換。
在 JavaScript 中隱式轉換為字串
如果 + 與數字字串一起使用,則 JavaScript 通過將數字字串值與程式碼的剩餘值連線來返回輸出。
例子:
let value;
value = '1' + 2;
console.log(value) // Output "12"
value = '1' + true;
console.log(value) // Output "1true"
如果剩餘的值是數字,JavaScript 會自動將其轉換為字串。
在 JavaScript 中隱式轉換為數字
如果數學運算子 -、*、/ 跟在數字字串後面,則輸出也將是數字。
例子:
let value;
value = '2' - '1';
console.log(value); // Output 1
value = '2' - 1;
console.log(value); // Output 1
value = '2' * 1;
console.log(value); // Output 2
value = '2' / 1;
console.log(value); // Output 2
在 JavaScript 中將非數字字串隱式轉換為 NaN
如果非數字字串後跟數學運算子 -、*、/,則輸出將返回為 NaN(非數字)。
例子:
let value;
value = 'hello' - 'world';
console.log(value); // Output NaN
value = 'Hello' - '2';
console.log(value); // Output NaN
JavaScript 中布林值到數字的隱式轉換
由於 JavaScript 將 false 視為 0,並將所有非零數字視為 true,因此當需要將 true 更改為數字時,true 將是 1。
例子:
let value;
value = 2 + true;
console.log(value); // Output 3
value = 2 + false;
console.log(value); // Output 2
在 JavaScript 中將 null 隱式轉換為數字
如果 null 與數字一起使用,它將為 0。
例子:
let value;
value = 2 + null;
console.log(value); // Output 2
value = 2 - null;
console.log(value); // Output 4
JavaScript 中 undefined 到 NaN 的隱式轉換
當 undefined 與數字、布林值或 null 一起使用時,輸出將返回為 NaN。
例子:
let value;
value = 2 + undefined;
console.log(value); // Output NaN
value = true + undefined;
console.log(value); // Output NaN
value = null + undefined;
console.log(value); // Output NaN
JavaScript 中的顯式轉換
在 JavaScript 中,我們可以手動將特定資料型別轉換為首選資料型別。這個過程稱為顯式轉換,通過呼叫一些內建方法來完成。
在 JavaScript 中顯式轉換為數字
使用 JavaScript 中的 Number() 方法,可以將數字字串、布林值 True 和 False、null 轉換為數字型別。true 將被視為 1,而 false 和 null 也將被視為 0。
示例 1:
let value;
value = Number('20');
console.log(value); // Output 20
value = Number(false);
console.log(value); // Output 0
示例 2:
let value;
value = Number(null);
console.log(value); // Output 0
let value = Number(' ')
console.log(value); // Output 0
如果在 Number() 方法中使用了無效字串,則輸出將返回為 NaN。
此外,還有其他方法,如 parseInt() 和 parseFloat(),其中字串被解析並分別作為整數和浮點返回。此外,一元+ 運算子是另一種轉換數字的方法。
在 JavaScript 中顯式轉換為字串
String() 和 toString() 可以在 JavaScript 中將資料型別轉換為字串。
例子:
let value;
value = String(1 + 2);
console.log(value); // Output "3"
value = String(null);
console.log(value); // Output "null"
value = (20).toString();
console.log(value); // Output "20"
重要的是要注意 String() 將 null 和 undefined 轉換為字串,但 toString() 會出錯。
在 JavaScript 中顯式轉換為布林值
JavaScript 將所有 undefined、null、0、NaN、'' 視為 false,而所有其他值都視為 true。
例子:
let value;
value = Boolean('');
console.log(value); // Output false
value = Boolean(undefined);
console.log(value); // Output false
value = Boolean(null);
console.log(value); // Output false
value = Boolean(NaN);
console.log(value); // Output false
TypeScript 中的型別轉換
在 TypeScript 中使用 as 關鍵字進行型別轉換
當使用 as 關鍵字時,它通知編譯器將實體視為另一種型別,而不是編譯器認為的型別。因此,as 關鍵字在 TypeScript 中執行型別斷言。
語法:
let a: typeA;
let b = a as typeB;
在 TypeScript 中使用 <> 運算子進行型別轉換
此外,我們還可以使用運算子 <> 在 TypeScript 中進行型別轉換。
語法:
let a: typeA;
let b = <typeB>a;
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.
