最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)換的評論 (共 條)

分享到微博請遵守國家法律
连州市| 焉耆| 二连浩特市| 洛川县| 化隆| 琼结县| 晋宁县| 丽江市| 荣昌县| 灵宝市| 盐城市| 高陵县| 岑溪市| 万年县| 潍坊市| 沂南县| 万全县| 六枝特区| 高青县| 凤山市| 安顺市| 商城县| 吕梁市| 涪陵区| 凌源市| 南部县| 固镇县| 白山市| 平昌县| 灌南县| 伊金霍洛旗| 泰顺县| 凤城市| 沙洋县| 卓尼县| 太仓市| 延边| 南通市| 鄂托克前旗| 准格尔旗| 南阳市|