JS中將一個值轉換為字串的3種方法

風靈使發表於2018-09-04
  1. value.toString()
  2. "" + value
  3. String(value)

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

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

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

其他:

a. 要把一個數字轉換為字串,只要給它新增一個空的字串即可:

var n = 100;
var n_as_string = n + "";

b. 要讓數字更加顯式地轉換為字串,可以使用String()函式:

var string_value = String(number);

c. 使用toString()方法:

string_value = number.toString();

Number物件的(基本的數字轉換為Number物件,以便可以呼叫這個方法)toString()方法有一個可選的引數,該引數用來指定轉換的基數。如果不指定這個引數,轉換會以10為基數進行。然而,也可以按照其他的基數(2到36之間的數)來轉換數字。

var n = 17;
binary_string = n.toString(2); // Evaluates to "10001"
octal_string = "0" + n.toString(8); // Evaluates to "021"
hex_string = "0x" + n.toString(16); // Evaluates to "0x11"

d.toFixed()方法把一個數字轉換為字串,並且顯示小數點後的指定的位數。它不使用指數表示法。

var n = 123456.789;
n.toFixed(0); // "123457"
n.toFixed(1); // "123456.8"

e. toExponential()使用指數表示法把一個數字轉換為字串,小數點前面有1位數,而小數點後面有特定的位數。

var n = 123456.789;
n.toExponential(1); // "1.2e+5"
n.toExponential(3); // "1.235e+5"

f. toPrecision()使用指定的有意義的位數來顯示一個數字,如果有意義的位數還不夠顯示數字的整個整數部分,它就使用指數表示法。

var n = 123456.789;
n.toPrecision(4); // "1.235e+5"
n.toPrecision(7); // "123456.8"

相關文章