parseint() 函式更專注於字串是否包含數值模式
字串最前面的空格會被
忽略,從第乙個非空格字元開始轉換。如果第乙個字元不是數值字元、加號或減號, parseint() 立即
返回 nan 。這意味著空字串也會返回 nan (這一點跟 number() 不一樣,它返回 0)
parsefloat() 函式的另乙個不同之處在於,它始終忽略字串開頭的零。
這個函式能識別前面討論的所有浮點格式,以及十進位制格式(開頭的零始終被忽略)。十六進製制數值始終會返回 0。因為
parsefloat() 只解析十進位制值,因此不能指定底數。最後,如果字串表示整數(沒有小數點或者小
數點後面只有乙個零),則 parsefloat() 返回整數。下面是幾個示例:
let num1 = parsefloat("1234blue"); // 1234,按整數解析
let num2 = parsefloat("0xa"); // 0
let num3 = parsefloat("22.5"); // 22.5
let num4 = parsefloat("22.34.5"); // 22.34
let num5 = parsefloat("0908.5"); // 908.5
let num6 = parsefloat("3.125e7"); // 31250000
number() 函式基於如下規則執行轉換。
布林值, true 轉換為 1, false 轉換為 0。
數值,直接返回。
null ,返回 0。
undefined ,返回 nan 。
字串,應用以下規則。
如果字串包含數值字元,包括數值字元前面帶加、減號的情況,則轉換為乙個十進位制數值。
因此, number("1") 返回 1, number("123") 返回 123, number("011") 返回 11(忽略前面
的零)。
如果字串包含有效的浮點值格式如 "1.1" ,則會轉換為相應的浮點值(同樣,忽略前面的零)。
如果字串包含有效的十六進製制格式如 "0xf" ,則會轉換為與該十六進製制值對應的十進位制整
數值。 如果是空字串(不包含字元),則返回 0。
如果字串包含除上述情況之外的其他字元,則返回 nan 。
物件,呼叫 valueof() 方法,並按照上述規則轉換返回的值。如果轉換結果是 nan ,則呼叫
tostring() 方法,再按照轉換字串的規則轉換。
從不同資料型別到數值的轉換有時候會比較複雜,看一看 number() 的轉換規則就知道了。下面是
幾個具體的例子:
let num1 = number("hello world!"); // nan
let num2 = number(""); // 0
let num3 = number("000011"); // 11
let num4 = number(true); // 1
可以看到,字串 "hello world" 轉換之後是 nan ,因為它找不到對應的數值。空字串轉換後
是 0。字串 000011 轉換後是 11,因為前面的零被忽略了。最後, true 轉換為 1。
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...