JavaScript 型別轉換

2021-09-16 23:46:01 字數 2164 閱讀 1950

僅針對字串

轉換規則:

1. 忽略字串前面的空格,直到找到第乙個非空格符

2. 如果第乙個字元不是數字或負號,返回 nan

parseint("") => nan

3. 如果第乙個字元是數字字元,繼續解析第二個字元,直到解析完所有後續字元或遇到乙個非數字字元

parseint("9527great") => 9527

parseint("11.4") => 11

4. 可以識別出各種整數字元(十進位制、八進位制、十六進製制)

parseint("0xa") => 10

parseint("070") => 56

在解析八進位制時,es3 和 es5 存在分歧,為消除不必要的麻煩,建議傳入第二個引數以表示轉換時使用的基數(即進製數)

parseint("070", 8) => 56 // 當作八進位制數來解析

parseint("070", 10) => 70 // 當作十進位制數來解析

僅針對字串

轉換規則:

1. 忽略字串前面的空格,直到找到第乙個非空格符

2. 如果第乙個字元不是數字或負號,返回 nan

parsefloat("") => nan

3. 從位置 0 開始解析每個字元,一直解析到字串末尾,或解析遇到乙個無效的浮點數字元為止

parsefloat("9527.23great") => 9527.23

4. 第乙個小數點有效,第二個小數點無效

parsefloat("22.34.56") => 22.34

5. 始終會忽略前導的 0

parsefloat("0729.4") => 729.4

6. 只解析十進位制整數格式

無第二個引數指定基數的用法

十六進製制格式的字串始終會被解析成 0

parsefloat("0xf") => 0

parsefloat("3.12e7") => 31200000

等價於 number(x)

等價於 string(x)

等價於 boolean(x)

轉換為字串

數字布林值

物件undefined

"undefined"

nanfalse

throws typeerror

null

"null"

0false

throws typeerror

true

"true"

1new boolean(true)

false

"false"

0new boolean(false)""0

false

new string("")

"1.2"

1.2true

new string("1.2")

"one"

nantrue

new string("one")

0"0"

false

new number(0)

-0"0"

false

new number(-0)

nan"nan"

false

number(nan)

infinity

"infinity"

true

new number(infinity)

-infinity

"-infinity"

true

new number(-infinity)

1"1"

true

new number(1)

{}(任意物件)

true

(任意陣列)""0

true

[9](1個數字元素)

"9"9

true

["a"](其他陣列)

使用 join() 方法

nantrue

function(){}(任意函式)

nantrue

JavaScript型別轉換

方法主要有三種 轉換函式 強制型別轉換 利用js變數弱型別轉換。1.轉換函式 js提供了parseint 和parsefloat 兩個轉換函式。前者把值轉換成整數,後者把值轉換成浮點數。只有對string型別呼叫這些方法,這兩個函式才能正確執行 對其他型別返回的都是nan not a number ...

javascript 型別轉換

var num number true console.log typeof num num 結果 number 1 var num number false console.log typeof num num 結果 number 0 var num number null console.log...

javascript資料型別轉換

isnan 判斷是否不是乙個有效數字,是有效數字返回false,否則返回true isnan 會隱式呼叫number 方法,把值轉強制換成數字資料型別 非強制轉換成數字 parseint 從左到右查詢數字,遇到非數字就停止 parsefloat 比parseint多識別乙個小數點 string 轉換...