JavaScript數(shù)值與字符串類型轉(zhuǎn)換的三種函數(shù)

字符串->數(shù)值

  • Number(argument1:AnyType)
  • parseInt(argument1:String,argument2:Int)
  • parseFloat(argument1:String)

Number()

Number()函數(shù)可以用于想要轉(zhuǎn)換為數(shù)值類型的任何數(shù)據(jù)類型

  • Boolean:Number(true)=1,Number(false)=0
  • Number:Number(value)=value
  • null:Number(null)=0
  • undefined:Number(undefined)=NaN
  • String:
    • 字符串中只包含數(shù)字(包括前面帶正負(fù)號的情況),則將其轉(zhuǎn)換為十進制數(shù)值(忽略前導(dǎo)零)
    1. 字符串中包含有效的浮點格式,則將其轉(zhuǎn)換為對應(yīng)的浮點數(shù)值(同樣忽略前導(dǎo)零)
    2. 字符串中包含有效的十六進制格式(0x開頭),則將其轉(zhuǎn)換為相同大小的十進制整數(shù)值。
    3. 字符串為空,則轉(zhuǎn)換為零
    • 字符串包含除上述格式外的字符,則轉(zhuǎn)換為NaN.

parseInt()

只能用來把字符串轉(zhuǎn)換為整數(shù):

  • 如果第一個非空字符不是數(shù)字字符或正負(fù)號,返回NaN
  • 如果第一個非空字符串是數(shù)字字符,則繼續(xù)解析第二個字符,直到解析完所有字符或者遇到一個非數(shù)字字符停止
  • 同時該函數(shù)能識別出十進制、十六進制(0x開頭)、八進制(0開頭)(可以為這個函數(shù)提供第二個參數(shù)10、16、8來確定轉(zhuǎn)換為何種進制,如果指定了第二個參數(shù),10進制和8進制也可以不帶開頭)

parseFloat()

  • 字符串中的第一個小數(shù)點是有效的,之后的多余小數(shù)點則被視為非數(shù)字字符
  • 只能識別十進制
  • 若字符串包含的是可被解析被整數(shù)的數(shù),則返回整數(shù)

數(shù)值->字符串

::toString(argument:Int)
參數(shù)可以是2、8、10、16表示輸出何種進制數(shù)值的字符串

將一個值轉(zhuǎn)換成一個字符串有兩種方法,一是使用toString()方法,二是使用轉(zhuǎn)型函數(shù)String()。下面是一些需要注意的問題:

  • 大多類型都有toString()方法,除了null和undefined類型。

  • 對于字符串型的值也可以使用toString()方法,它會返回該字符串的一個副本。

  • 默認(rèn)情況下 參數(shù)是10。要說明的是對于非數(shù)值類型(boolean,string等)設(shè)置toString()的參數(shù)是無效的

  • 任何值都可以使用String()方法。它的過程是這樣的

首先,如果值有toString()方法,那么則使用該方法(無參數(shù))。

其次,那就是該值沒有toString()方法,那就是 null 返回 "null",undefined返回"undefined";

總的來說,在不知道某個變量是否有值/已定義的情況下,使用String()是最為保險的方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容