瞭解JavaScript中的資料型別轉換

2020-10-19 21:00:43

在JavaScript中,資料型別用於對一種特定型別的資料進行分類,確定可以分配給該型別的值以及可以對其執行的操作。

雖然由於型別強制,JavaScript會自動轉換許多值,但為了達到預期的結果,通常最好在型別之間手動轉換值。

本教學將指導您轉換JavaScript的基本資料型別,包括數位、字串和布林值。

隱式轉換

作為一種程式語言,JavaScript對意外值的容忍度很高。因此,JavaScript將嘗試轉換意外值,而不是直接拒絕它們。這種隱式轉換稱為型別強制。

有些方法會自動轉換值以便使用它們。alert()方法接受一個字串作為引數,但它將自動將其他型別轉換為字串。因此,我們可以傳遞一個數值給方法:

alert(8.5);

如果我們執行上面的程式碼行,瀏覽器將返回一個彈出的警告對話方塊,其中顯示8.5值,但是它將被轉換為一個字串。

當使用可以通過數學運運算元計算為數位的字串時,您將發現JavaScript能夠通過隱式地將字串轉換為數位來處理這些值,如下面的範例所示。

// Subtraction
"15" - "10";

輸出:5

// Modulo
"15" % "10";

輸出:5

然而,並不是每個運運算元都能像預期的那樣工作。+運運算元有明顯的問題,因為它可以表示加法或字串連線。

// When working with strings, + stands for concatenation
"2" + "3";

輸出:"23"

由於+運運算元是多用途的,因此儘管是數位字串,但字串值2和3連線為字串值23,而不是加在一起成為數位5。

由於模糊性可能存在,有時會導致意外的結果,所以通常最好在程式碼中顯式地轉換儘可能多的資料型別。這將有助於管理來自使用者的輸入和處理錯誤。

將值轉換為字串

可以通過呼叫String()或N.ToString()將值顯式轉換為字串。

使用String()函數,讓我們通過將值true傳遞給String()的引數,將布林值轉換為字串。

String(true);

當我們這樣做時,字串文字「true」將返回。

輸出:"true"

或者,我們可以向函數傳遞一個數位。

String(49);

將返回該數位的字串文字。

輸出:"49"

讓我們將String()函數與變數一起使用。 我們將為變數odyssey分配一個數位值,然後使用typeof運運算元來檢查型別。

let odyssey = 2001;
console.log(typeof odyssey);

輸出:number

此時,變數odyssey被賦予2001的數值,我們已經確認它是一個數位。

現在,讓我們將odyssey重新分配到它的字串等效值,然後使用typeof來確認我們已經成功地將變數的值從一個數位轉換為一個字串。

odyssey = String(odyssey); // "2001"
console.log(typeof odyssey);

輸出:string

在上面的例子中,我們已經確認,在資料型別轉換之後,將odyssey重新賦值為一個字串值。

我們可以以類似的方式使用n.toString()。我們可以用變數替換n:

let blows = 400;
blows.toString();

變數blow將作為字串返回。

輸出:"400"

或者,我們可以把值放在圓括號內,而不是用n.toString()變數:

(1776).toString(); // returns "1776"
(false).toString(); // returns "false"
(100 + 200).toString(); // returns "300"

通過使用String()或n.toString(),我們能夠顯式地將布林值或數位資料型別的值轉換為String值,以確保程式碼的行為符合我們的預期。

將值轉換為數位

在將值轉換為數位資料型別時,我們將使用number()方法。首先,我們將把數位文字字串轉換為數位,但我們也可以轉換布林值。

我們可以將一個數位串傳遞給number()方法:

Number("1984");

字串將被轉換為一個數位,不再用引號括起來。

輸出:1984

我們還可以將一個字串賦值給一個變數,然後對其進行轉換。

let dalmatians = "101";
Number(dalmatians);

輸出:101

字串文字「101」通過其變數被轉換為數位101。

空白字串或空字串將轉換為0。

Number(" "); // returns 0
Number(""); // returns 0

注意,非數位字串將轉換為NaN, NaN表示非數位。這包括用空格分隔的數位。

Number("twelve"); // returns NaN
Number("20,000"); // returns NaN
Number("2 3"); // returns NaN
Number("11-11-11"); // returns NaN

對於布林資料型別,false的值為0,true的值為1。

Number(false); // returns 0
Number(true); // returns 1

方法的作用是:將非數位資料型別轉換為數位。

將值轉換為布林值

要將數位或字串轉換為布林值,可以使用Boolean()方法。例如,這對於確定使用者是否將資料輸入文字欄位非常有用。

任何被解釋為空的值,如數位0、空字串或未定義的值、NaN或null,都被轉換為false。

Boolean(0); // returns false
Boolean(""); // returns false
Boolean(undefined); // returns false
Boolean(NaN); // returns false
Boolean(null); // returns false

其他值將被轉換為true,包括由空格組成的字串文字。

Boolean(2000); // returns true
Boolean(" "); // returns true
Boolean("Maniacs"); // returns true

注意,「0」作為字串文字將轉換為真,因為它是一個非空字串值:

Boolean("0");   // returns true

將數位和字串轉換為布林值可以允許我們在二進位制術語中計算資料,並且可以用於程式中的控制流。

相關免費學習推薦:

以上就是了解JavaScript中的資料型別轉換的詳細內容,更多請關注TW511.COM其它相關文章!