溫馨提示×

溫馨提示×

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

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

如何在JavaScript中對顯式的數(shù)據(jù)類型進行轉(zhuǎn)換

發(fā)布時間:2021-02-26 16:07:22 來源:億速云 閱讀:133 作者:戴恩恩 欄目:web開發(fā)

本文章向大家介紹如何在JavaScript中對顯式的數(shù)據(jù)類型進行轉(zhuǎn)換,主要包括如何在JavaScript中對顯式的數(shù)據(jù)類型進行轉(zhuǎn)換的使用實例、應(yīng)用技巧、基本知識點總結(jié)和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。

Java是什么

Java是一門面向?qū)ο缶幊陶Z言,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序。

基本概念

將值從一種類型轉(zhuǎn)換為另一種類型稱為類型轉(zhuǎn)換,類型轉(zhuǎn)換總是返回基本類型值,如字符串、數(shù)字和布爾值,不會返回引用類型值。
類型轉(zhuǎn)換分為“顯式”和“隱式”:“顯式”轉(zhuǎn)換發(fā)生在靜態(tài)類型語言的編譯階段,而“隱式”轉(zhuǎn)換則發(fā)生在動態(tài)類型語言的運行時。

顯式類型轉(zhuǎn)換

非字符串到字符串的類型轉(zhuǎn)換

toString() 方法
數(shù)字、布爾值、字符串和對象都有 toString() 方法,但 null 和 undefined 沒有。
例子:

var name = "Tom",
  age = 19,
  isStudent = true;
console.log(name.toString()); //輸出:"Tom"
console.log(age.toString()); //輸出:"19"
console.log(isStudent.toString()); //輸出:"true"

var obj = {
    name: "Tom"
  },
  arr = [19, 20];
console.log(obj.toString()); //輸出:"[object Object]"
console.log(arr.toString()); //輸出:"19,20"

*基本類型值不能直接使用 toString() 方法,所以 JavaScript 引擎會自動為基本類型值創(chuàng)建一個封裝對象,然后對該對象調(diào)用 toString()。

String() 方法

這個方法能夠?qū)⑷魏晤愋偷闹缔D(zhuǎn)換為字符串,基本的轉(zhuǎn)換規(guī)則是:

1、如果值有toString()方法,則調(diào)用該方法進行轉(zhuǎn)換;
2、如果值是null,則返回“null”;
3、如果值是undefined,則返回“undefined”。

例子:

console.log(String(11)); //輸出:"11"
console.log(String(true)); //輸出:"true"
console.log(String("love")); //輸出:"love"
console.log(String(null)); //輸出:"null"
console.log(String(undefined)); //輸出:"undefined"
console.log(String({
  name: "Tom"
})); //輸出:"[object Object]"
console.log(String([1, 2])); //輸出:"1,2"

非數(shù)字到數(shù)字的類型轉(zhuǎn)換

Number() 方法

這個方法可以用于任何數(shù)據(jù)類型,基本的轉(zhuǎn)換規(guī)則是:
1、如果是Boolean值,true和false將分別被轉(zhuǎn)換為1和0;
2、如果是數(shù)字值,只是簡單的傳入和返回;
3、如果是null值,返回0;
4、如果是undefined值,返回NaN;
5、如果是字符串,遵循下列規(guī)則:

  1. 如果字符串中只包含數(shù)字,將其轉(zhuǎn)換為十進制。即“123”轉(zhuǎn)換為123,“011”轉(zhuǎn)換為11(忽略前導(dǎo)0);

  2. 如果字符串中包含有效的浮點格式,如“1.1”將其轉(zhuǎn)換為對應(yīng)的浮點數(shù)值(同樣忽略前導(dǎo)0);

  3. 如果字符串是空的,不包含任何字符,則將其轉(zhuǎn)換為0;

  4. 如果字符串中包含除上述以外的字符,則將其轉(zhuǎn)換為NaN。

 6、如果是對象,會首先檢查該值是否有 valueOf() 方法。如果有,并且可以成功返回基本類型值,那么就使用該方法的返回值進行強制類型轉(zhuǎn)換;如果沒有就使用 toString() 的返回值來進行強制類型轉(zhuǎn)換。如果 valueOf() 和 toString() 均不返回基本類型值,會產(chǎn)生 TypeError 錯誤。

*valueOf() 和 toString() 都屬于 Object 的原型方法,valueOf() 返回類型不變的原始值而非值的字符串形式。

例子:

console.log(Number(true)); //輸出:1
console.log(Number(10)); //輸出:10
console.log(Number(null)); //輸出:0
console.log(Number(undefined)); //輸出:NaN
console.log(Number("123")); //輸出:123
console.log(Number("01")); //輸出:1
console.log(Number("1.1")); //輸出:1.1
console.log(Number("")); //輸出:0
console.log(Number("love")); //輸出:NaN
//轉(zhuǎn)換過程:{name: "Tom"} => "[object Object]" => NaN
console.log(Number({
  name: "Tom"
})); //輸出:NaN
//轉(zhuǎn)換過程:[1,2] => "1,2" => NaN
console.log(Number([1, 2])); //輸出:NaN
//轉(zhuǎn)換過程:[999] => "999" => 999
console.log(Number([999])); //輸出:999
console.log(Number(new Date)); //以微秒為單位的數(shù)字時間

parseInt() 方法

這個方法是專門用于把字符串轉(zhuǎn)換成整數(shù)的,非字符串參數(shù)會首先被強制轉(zhuǎn)換為字符串,它的基本轉(zhuǎn)換規(guī)則是:
1、如果第一個字符不是數(shù)字或者負號,返回NaN;
2、如果第一個字符是數(shù)字,會繼續(xù)解析第二個字符,直到解析完所有后續(xù)字符或者遇到了一個非數(shù)字字符。
例子:

例子:

//非字符串類型
//轉(zhuǎn)換過程:10.1 => "10.1" => 10
console.log(parseInt(10.1)); //輸出:10
//轉(zhuǎn)換過程:0.0000008 => "8e-7" => 8
console.log(parseInt(0.0000008)); //輸出:8

//字符串類型
console.log(parseInt("10abc")); //輸出:10
console.log(parseInt("abc")); //輸出:NaN

*從 ES5 開始,parseInt() 默認轉(zhuǎn)換為十進制數(shù),如果需要轉(zhuǎn)換其他基數(shù)(即多少進制),可以為這個函數(shù)提供第二個參數(shù),例如:parseInt( “0xAF”, 16 ) 。

parseFloat() 方法與 parseInt() 類似,用于解析浮點數(shù)。字符串中的第一個小數(shù)點是有效的,而第二個小數(shù)點是無效的。除此之外,parseFloat() 方法只能解析十進制數(shù)。

例子:

console.log(parseFloat("10abc")); //輸出:10
console.log(parseFloat("11.22.33")); //輸出:11.22
console.log(parseFloat("011.22")); //輸出:11.22

非布爾值到布爾值的類型轉(zhuǎn)換

Boolean() 方法

可以對任何數(shù)據(jù)類型的值調(diào)用 Boolean() 方法,而且總會返回一個 Boolean 值,基本的轉(zhuǎn)換規(guī)則是:
1、以下這些是可以被轉(zhuǎn)換為 false 的值:

  1. undefined

  2. null

  3. false

  4. +0、-0 和 NaN

  5. “”

2、上面列舉之外的值都是可以被轉(zhuǎn)換為 true 的值。

例子:

console.log(Boolean(undefined)); //輸出:false
console.log(Boolean(null)); //輸出:false
console.log(Boolean(false)); //輸出:false
console.log(Boolean(0)); //輸出:false
console.log(Boolean(-0)); //輸出:false
console.log(Boolean(NaN)); //輸出:false
console.log(Boolean("")); //輸出:false

所有的對象都是可以被轉(zhuǎn)換為 true 的值,包括使用Boolean、 Number 和 String 來創(chuàng)建的基本包裝類型的對象。

例子:

console.log(Boolean(new Boolean(false))); //輸出:true
console.log(Boolean(new Number(0))); //輸出:true
console.log(Boolean(new String(""))); //輸出:true
console.log(Boolean([])); //輸出:true
console.log(Boolean({})); //輸出:true

到此這篇關(guān)于如何在JavaScript中對顯式的數(shù)據(jù)類型進行轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)的內(nèi)容請搜索億速云以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持億速云!

向AI問一下細節(jié)

免責聲明:本站發(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