JavaScript 和 TypeScript 中的型別轉換

Migel Hewage Nimesha 2023年10月12日
  1. JavaScript 中的隱式轉換
  2. JavaScript 中的顯式轉換
  3. TypeScript 中的型別轉換
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 中 undefinedNaN 的隱式轉換

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() 方法,可以將數字字串、布林值 TrueFalsenull 轉換為數字型別。true 將被視為 1,而 falsenull 也將被視為 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()nullundefined 轉換為字串,但 toString() 會出錯。

在 JavaScript 中顯式轉換為布林值

JavaScript 將所有 undefinednull0NaN'' 視為 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;
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.

相關文章 - TypeScript Casting