1. 程式人生 > >js字串轉換成數字,數字轉換成字串

js字串轉換成數字,數字轉換成字串

在JavaScript中,主要有三種方法能讓任意值轉換為字串.本文講解了每種方法以及各自的優缺點.



1.轉換字串的三種方法 

這三種將value轉換為字串的方法是: 



1.value.toString() 

2."" + value 

3.String(value) 



第一種方法存在的問題是,它不能把null和undefined轉換為字串.還有第二種和第三種方法,這兩種方法的效果基本一樣. 



•""+value: 使用加法運算子配合一個空字串可以把任意值轉換為字串,我覺得這種方法程式碼的可讀性很差,但相對String(value)來,還是有一些人更喜歡用這種轉換方式. 

•String(value): 這種方法可讀性更好,唯一的問題是,這種函式呼叫可能會迷惑一些人,尤其是那些熟悉Java的程式設計師,因為String同時也是一個建構函式.要注意的是它作為普通函式和作為建構函式時的表現完全不同: 



程式碼如下: 

> String("abc") === new String("abc") 
false 

> typeof String("abc") 
'string' 
> String("abc") instanceof String 
false 

> typeof new String("abc") 
'object' 
> new String("abc") instanceof String 
true





String作為普通函式時會產生一個字串(一個原始值).作為建構函式時會產生一個String物件的例項.後者在JavaScript中很少用到,所以基本上你可以忽略掉String作為建構函式的用法,但一定要記得它是個轉換函式. 




2.""+value 和 String(value)的細微差別 

到現在你已經知道了+ 和 String()都可以將它們的“引數”轉換為字串.但他們的轉換方式還是著有細微的差別,不過幾乎所有的情況下,轉換結果都是一樣的. 



2.1 將原始值轉換為字串 

這兩種方法都是使用引擎內部的ToString()操作將原始值轉換為字串的.“內部操作”的意思是:這個操作函式是在ECMAScript 5.1 (§9.8)中定義的,但ES語言本身並不能訪問到它.下面這個表格解釋了ToString()是如何轉換原始值的. 
============

 將字串轉換成數字,得用到parseInt函式。

parseInt(string) : 函式從string的開始解析,返回一個整數。

舉例:parseInt('123') : 返回 123(int);

     parseInt('1234xxx') : 返回 1234(int);

如果解析不到數字,則將返回一個NaN的值,可以用isNaN()函式來檢測;

舉例 :

 var i = parseInt('abc');

 if (isNaN(i))

 {

    alert('NaN value');

 }

同樣的parseFloat函式是將字串轉換成浮點數。

舉例:parseFloat('31.24abc') : 返回 31.24;

js數字轉換成字串

    將字串轉換成數字,得用到String類的toString方法

舉例:

var i = 10;

var s = i.toString();

alert(typeof s);     //將輸出 String

js數字與字串的區別

    js的數字的加法與字串的連線都是 + 符號, 所以究竟是加還是字串的連線就取決與變數的型別。

舉例:

var a = 'abc' + 'xyz';    //a的值為:abcxyz,字串與字串是連線

var a = 10 + 5;           //a的值為:15,數字是加

var a = 'abc' + 10;       //a的值為:abc10,字串與數字,自動將10轉換成字串了

var a = 'abc' + 10 + 20 + 'cd';  //a的值為:abc1020cd

var a = 10 + 20 + 'abc' + 'cd';  //a的值為:30abccd,可以數字加的先數字加,然後再連線

如果從html頁面元素得到的值,想按數字加,就需要先轉換為數字,因為從頁面得到的值預設是字串。