1. 程式人生 > >JavaScript數值與字串型別轉換的三種函式

JavaScript數值與字串型別轉換的三種函式

字串->數值

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

Number()

Number()函式可以用於想要轉換為數值型別的任何資料型別
- Boolean:Number(true)=1,Number(false)=0
- Number:Number(value)=value
- null:Number(null)=0
- undefined:Number(undefined)=NaN
- String:
- 字串中只包含數字

(包括前面帶正負號的情況),則將其轉換為十進位制數值(忽略前導零)
2. 字串中包含有效的浮點格式,則將其轉換為對應的浮點數值(同樣忽略前導零)
3. 字串中包含有效的十六進位制格式(0x開頭),則將其轉換為相同大小的十進位制整數值。
4. 字串為空,則轉換為零
- 字串包含除上述格式外的字元,則轉換為NaN.

parseInt()

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

parseFloat()

  • 字串中的第一個小數點是有效的,之後的多餘小數點則被視為非數字字元
  • 只能識別十進位制
  • 若字串包含的是可被解析被整數的數,則返回整數

數值->字串

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

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

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

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

  • 預設情況下 引數是10。要說明的是對於非數值型別(boolean,string等)設定toString()的引數是無效的

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

        首先,如果值有toString()方法,那麼則使用該方法(無引數)。

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

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