国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

JS的數(shù)據(jù)類型轉(zhuǎn)換

2022-06-22 22:04 作者:朵寶特工007  | 我要投稿

一、自動類型轉(zhuǎn)換

一般是跟運行環(huán)境和操作符聯(lián)系在一起的,是一種隱式轉(zhuǎn)換,具有一定的規(guī)律性,大體可以劃分為:轉(zhuǎn)換為字符串類型、轉(zhuǎn)換為布爾類型、轉(zhuǎn)換為數(shù)字類型。

(1)轉(zhuǎn)換為字符串類型

當(dāng)加號“+”作為二元操作符,并且其中一個操作數(shù)為字符串類型時,另一個操作數(shù)將會被無條件轉(zhuǎn)為字符串類型。

對于基礎(chǔ)類型,會直接轉(zhuǎn)換為與字面量相一致的字符串類型。

對于復(fù)合類型,會先試圖調(diào)用對象的valueOf()方法(返回對象的指定原始值),如果此方法返回值是引用類型,則接著再調(diào)用它其toString()方法(返回對象的字符串表示),最后將返回值轉(zhuǎn)為字符串類型。

不同類型對象的valueOf()方法和toString()方法的返回值

(2)轉(zhuǎn)換為布爾類型

  • 數(shù)字轉(zhuǎn)為布爾類型

    當(dāng)數(shù)字在邏輯環(huán)境中執(zhí)行的時候,會自動轉(zhuǎn)為布爾類型。

    0和NaN會自動轉(zhuǎn)為false,其余數(shù)字都被認(rèn)為是true(非0負(fù)值也會被認(rèn)為是true)。

  • 字符串轉(zhuǎn)為布爾類型

    和數(shù)字類似,當(dāng)字符串在邏輯環(huán)境中執(zhí)行時,也會被轉(zhuǎn)換為布爾類型。

    空字符串會被轉(zhuǎn)為false,其他字符串都會轉(zhuǎn)為true。

  • undefined和null轉(zhuǎn)為布爾類型

    當(dāng)undefined和null在邏輯環(huán)境中執(zhí)行時,都被認(rèn)為是false。

  • 對象轉(zhuǎn)為布爾類型

    當(dāng)對象在邏輯環(huán)境中執(zhí)行時,只要當(dāng)前引用的對象不為空,都會被認(rèn)為是true。如果一個對象的引用為null,會被轉(zhuǎn)換為false。雖然使用typeof檢測null為“object”,但它并不是嚴(yán)格意義上的對象類型,只是一個對象空引用的標(biāo)識。

    另外,這里的邏輯環(huán)境不包括比較操作符(==),因為它會根據(jù)valueOf()和toString()將對象轉(zhuǎn)為其他類型。

由于對象總被認(rèn)為是true,使用基礎(chǔ)類型的包裝對象時,要特別小心。

對于Boolean類,有個特別需要注意的地方,當(dāng)傳入一個字符串時,它不會去解析字符串內(nèi)部的值,而是做一個簡單的判斷,只要不是空字符串,都會被認(rèn)為是true。

  • 邏輯非、邏輯與和邏輯或操作符轉(zhuǎn)布爾類型

    連用兩個邏輯非可以把一個值轉(zhuǎn)為布爾類型。

(3)轉(zhuǎn)換為數(shù)字類型

操作數(shù)在數(shù)字環(huán)境中參與運算時,會被轉(zhuǎn)為相應(yīng)的數(shù)字類型值,其轉(zhuǎn)換規(guī)則如下:

  • 字符串類型轉(zhuǎn)為數(shù)字:空字符串被轉(zhuǎn)為0,非空字符串中,符合數(shù)字規(guī)則的會被轉(zhuǎn)換為相應(yīng)的數(shù)字,否則視為NaN。

  • 布爾類型轉(zhuǎn)為數(shù)字:true被轉(zhuǎn)為1,false被轉(zhuǎn)為0。

  • null被轉(zhuǎn)為0,undefined被轉(zhuǎn)為NaN。

  • 對象類型轉(zhuǎn)為數(shù)字:valueOf()方法先試圖被調(diào)用,如果調(diào)用返回的結(jié)果為基礎(chǔ)類型,則再將其轉(zhuǎn)為數(shù)字;如果返回的結(jié)果不是基礎(chǔ)類型,則會再試圖調(diào)用toString()方法,最后試圖將返回結(jié)果轉(zhuǎn)為數(shù)字,如果這個返回結(jié)果是基礎(chǔ)類型,則會得到一個數(shù)字或NaN,如果不是基礎(chǔ)類型,則會拋出一個異常。

  • 一個其他類型的值被轉(zhuǎn)換為數(shù)字,跟其參與運算的操作符有很密切的聯(lián)系。


二、強(qiáng)制類型轉(zhuǎn)換

(1)String

把一個數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)為String類型有兩種方法:

  • 方法一:toString()方法

    Null和Undefined不能進(jìn)行轉(zhuǎn)換,因為它們沒有toString()方法。

  • 方法二、調(diào)用String()函數(shù)

(2)Number

????轉(zhuǎn)換情況:

????1、數(shù)字->數(shù)字

????2、非全數(shù)字->NaN

????3、空串和滿空格->0

????4、布爾值轉(zhuǎn)換:true->1,false->0

????5、null->0

????6、Undefined->NaN

  • 方法一、Number()函數(shù)

  • 方法二、ParseInt();ParseFloat()

    這種方式一般用于字符串,其他類型會優(yōu)先轉(zhuǎn)換為字符串類型然后再操作。

    ParseInt():從字符串中取整數(shù),從左向右開始檢查,遇見非數(shù)字的后面全不取。

    parseInt(string, radix) 當(dāng)參數(shù) radix 的值為 0,或沒有設(shè)置該參數(shù)時,parseInt() 會根據(jù) string 來判斷數(shù)字的基數(shù)。

    舉例,如果?string?以 "0x" 開頭,parseInt() 會把?string?的其余部分解析為十六進(jìn)制的整數(shù)。如果?string?以 0 開頭,那么 ECMAScript v3 允許 parseInt() 的一個實現(xiàn)把其后的字符解析為八進(jìn)制或十六進(jìn)制的數(shù)字。如果?string?以 1 ~ 9 的數(shù)字開頭,parseInt() 將把它解析為十進(jìn)制的整數(shù)。

????ParseFloat():從字符串中取出有效的小數(shù),從左向右開始檢查,遇見非數(shù)字的后面不取。

????其他類型:

(3)Boolean

Boolean()函數(shù):

轉(zhuǎn)換為Boolean只有一個方法。

轉(zhuǎn)換值:

  • 數(shù)字:0和NaN為false,其他為true。

  • 字符串:空串為false,其他為true。

  • null和undefined都是false。

  • Object(對象)轉(zhuǎn)換也為true。


JS的數(shù)據(jù)類型轉(zhuǎn)換的評論 (共 條)

分享到微博請遵守國家法律
潼南县| 潜山县| 阳新县| 鹿泉市| 响水县| 当涂县| 冕宁县| 滨州市| 盱眙县| 罗江县| 大丰市| 南宁市| 霞浦县| 静海县| 界首市| 无为县| 贵阳市| 张家港市| 揭阳市| 菏泽市| 钟祥市| 泸定县| 淄博市| 宝清县| 鲁甸县| 大悟县| 阳信县| 银川市| 麦盖提县| 达拉特旗| 庆阳市| 郓城县| 隆尧县| 呼图壁县| 界首市| 奇台县| 汪清县| 扎鲁特旗| 都匀市| 维西| 和平县|