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頁面元素得到的值,想按數字加,就需要先轉換為數字,因為從頁面得到的值預設是字串。