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.