溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript中的數(shù)據(jù)類型轉(zhuǎn)換是什么

發(fā)布時間:2020-10-22 15:31:37 來源:億速云 閱讀:166 作者:小新 欄目:web開發(fā)

小編給大家分享一下JavaScript中的數(shù)據(jù)類型轉(zhuǎn)換是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在JavaScript中,數(shù)據(jù)類型用于對一種特定類型的數(shù)據(jù)進行分類,確定可以分配給該類型的值以及可以對其執(zhí)行的操作。

雖然由于類型強制,JavaScript會自動轉(zhuǎn)換許多值,但為了達到預(yù)期的結(jié)果,通常最好在類型之間手動轉(zhuǎn)換值。

本教程將指導(dǎo)您轉(zhuǎn)換JavaScript的基本數(shù)據(jù)類型,包括數(shù)字、字符串和布爾值。

隱式轉(zhuǎn)換

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

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

alert(8.5);

如果我們運行上面的代碼行,瀏覽器將返回一個彈出的警告對話框,其中顯示8.5值,但是它將被轉(zhuǎn)換為一個字符串。

當(dāng)使用可以通過數(shù)學(xué)運算符計算為數(shù)字的字符串時,您將發(fā)現(xiàn)JavaScript能夠通過隱式地將字符串轉(zhuǎn)換為數(shù)字來處理這些值,如下面的示例所示。

// Subtraction
"15" - "10";

輸出:5

// Modulo
"15" % "10";

輸出:5

然而,并不是每個運算符都能像預(yù)期的那樣工作。+運算符有明顯的問題,因為它可以表示加法或字符串連接。

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

輸出:"23"

由于+運算符是多用途的,因此盡管是數(shù)字字符串,但字符串值2和3連接為字符串值23,而不是加在一起成為數(shù)字5。

由于模糊性可能存在,有時會導(dǎo)致意外的結(jié)果,所以通常最好在代碼中顯式地轉(zhuǎn)換盡可能多的數(shù)據(jù)類型。這將有助于管理來自用戶的輸入和處理錯誤。

將值轉(zhuǎn)換為字符串

可以通過調(diào)用String()或N.ToString()將值顯式轉(zhuǎn)換為字符串。

使用String()函數(shù),讓我們通過將值true傳遞給String()的參數(shù),將布爾值轉(zhuǎn)換為字符串。

String(true);

當(dāng)我們這樣做時,字符串文字“true”將返回。

輸出:"true"

或者,我們可以向函數(shù)傳遞一個數(shù)字。

String(49);

將返回該數(shù)字的字符串文字。

輸出:"49"

讓我們將String()函數(shù)與變量一起使用。 我們將為變量odyssey分配一個數(shù)字值,然后使用typeof運算符來檢查類型。

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

輸出:number

此時,變量odyssey被賦予2001的數(shù)值,我們已經(jīng)確認(rèn)它是一個數(shù)字。

現(xiàn)在,讓我們將odyssey重新分配到它的字符串等效值,然后使用typeof來確認(rèn)我們已經(jīng)成功地將變量的值從一個數(shù)字轉(zhuǎn)換為一個字符串。

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

輸出:string

在上面的例子中,我們已經(jīng)確認(rèn),在數(shù)據(jù)類型轉(zhuǎn)換之后,將odyssey重新賦值為一個字符串值。

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

let blows = 400;
blows.toString();

變量blow將作為字符串返回。

輸出:"400"

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

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

通過使用String()或n.toString(),我們能夠顯式地將布爾值或數(shù)字?jǐn)?shù)據(jù)類型的值轉(zhuǎn)換為String值,以確保代碼的行為符合我們的預(yù)期。

將值轉(zhuǎn)換為數(shù)字

在將值轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)類型時,我們將使用number()方法。首先,我們將把數(shù)字文本字符串轉(zhuǎn)換為數(shù)字,但我們也可以轉(zhuǎn)換布爾值。

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

Number("1984");

字符串將被轉(zhuǎn)換為一個數(shù)字,不再用引號括起來。

輸出:1984

我們還可以將一個字符串賦值給一個變量,然后對其進行轉(zhuǎn)換。

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

輸出:101

字符串文字“101”通過其變量被轉(zhuǎn)換為數(shù)字101。

空白字符串或空字符串將轉(zhuǎn)換為0。

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

注意,非數(shù)字字符串將轉(zhuǎn)換為NaN, NaN表示非數(shù)字。這包括用空格分隔的數(shù)字。

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

對于布爾數(shù)據(jù)類型,false的值為0,true的值為1。

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

方法的作用是:將非數(shù)字?jǐn)?shù)據(jù)類型轉(zhuǎn)換為數(shù)字。

將值轉(zhuǎn)換為布爾值

要將數(shù)字或字符串轉(zhuǎn)換為布爾值,可以使用Boolean()方法。例如,這對于確定用戶是否將數(shù)據(jù)輸入文本字段非常有用。

任何被解釋為空的值,如數(shù)字0、空字符串或未定義的值、NaN或null,都被轉(zhuǎn)換為false。

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

其他值將被轉(zhuǎn)換為true,包括由空格組成的字符串文字。

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

注意,“0”作為字符串文字將轉(zhuǎn)換為真,因為它是一個非空字符串值:

Boolean("0");   // returns true

將數(shù)字和字符串轉(zhuǎn)換為布爾值可以允許我們在二進制術(shù)語中計算數(shù)據(jù),并且可以用于程序中的控制流。

以上是JavaScript中的數(shù)據(jù)類型轉(zhuǎn)換是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI