JS 型別轉換

2021-09-25 11:24:22 字數 1351 閱讀 6681

一、基礎知識

強制轉換:首先強制轉換說的是3個建構函式,分別是number()、string()、boolean()他們的作用就是將各型別的內容轉換成對應的值【數字、字串、布林值】

原始值:原始值首先代表的是5大基礎型別值因為他們不能再被細化,是最單純的值。分別是:undefined、null、boolean、number、string。他們因為長度大小固定,一般存在棧(stack)中,方便快速查詢

複雜值:object、function、array、date、regexp這些都是複雜值,因為他們在記憶體中的大小是未知的,可以包含任何值,不是特定值。他們不適合存在棧中,所以存在堆中,棧裡只存放乙個指標,指標指向它的記憶體位址

tostring(): 需要返回物件的字串,可以做進製轉換。null和undefined不能呼叫tostring()方法

valueof() :需要返回的是物件的原始值

二、 number()

number()的型別轉換

原始值轉換規則如下

數值:轉換後還是數值

字串:「123」轉換後是123,「abc」轉換後是nan,而且由於number函式非常嚴謹,只要字串中有不可轉換成數值的字元,就會顯示nan,空字串是0。

布林值: true是1 false是0

undefined:轉換nan

null:轉換成0

複雜值轉換規則:

複雜值轉換首先會呼叫valueof方法如果能返回原始值也就是(數字,字串,布林)就不在進行後續操作,直接執行number()

如果返回的不是原始值,就會執行tostring()方法,tostring返回的是原始值就執行number(),返回的還不是原始值就返回nan

parseint 和 number 的區別:

parseint在處理時會逐個字元識別轉換,遇到空格、非數字時才會停止識別轉換,顯示之前處理的結果。

number是把當前字元作為乙個整體,只要有不符合要求的地方返回的就是nan。

兩者共同之處:\v \r \t \n \f等這種特殊空白符兩者都會預設轉化.

三、string()

string() 型別轉換之後都會變成 string 型別

原始型別值會直接使用string()轉化

複雜型別呼叫valueof方法時如果返回了原始型別值就使用string()轉化

如果不是原始型別值的話,就會報錯

四、boolean()

只有6種情況會返回false,其他情況都是返回true

boolean(undefined)

boolean(null)

boolean(-0)

boolean(+0)

boolean(nan)

boolean("")

JS 型別轉換 強制型別轉換

js 型別轉換 強制型別轉換 一 parseint 將其他型別轉換成number型別的整數 注意 string number 1 字串中值的首字元必須是數字,轉換後才能得到具體的值 否則得到nan 2 只轉換從首字元開始的連續數字 如 2b345 轉換後只得到2 3 除了string,其他型別轉換後...

js型別轉換

js varscolor blue alert scolor.length outputs 4 js varbfound false alert bfound.tostring outputs false js varinum1 10 varfnum2 10.0 alert fnum2.tostri...

js 型別轉換

function str function tostr val function todstr val,dv function trim str function lenb str function ismobile str d 13 d 15 d if reg.test trim str retu...