value.toString()
"" + value
String(value)
第一种方法存在的问题是,它不能把null
和undefined
转换为字符串.还有第二种和第三种方法,这两种方法的效果基本一样.
""+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"