toString()方法:
除了 null 和 undefined 这两个值以外,数值、布尔值、对象和字符串都有 toString() 方法。
没错,每个字符串也都有一个toString()方法,该方法返回字符串的一个副本。
多数情况下,调用toString()方法不必传递参数。
但是,在调用数值的toString()方法时,可以传递一个参数:输出数值的基数。
如:
var num = 10;
alert(num.toString()); // '10' 默认
alert(num.toString(2)); // '1010' 二进制
alert(num.toString(8)); // '12' 八进制
alert(num.toString(10)); // '10' 十进制
alert(num.toString(16)); // 'a' 十六进制
如上所述,通过指定基数,toString()方法会改变输出的值。默认情况下,toString()方法以十进制格式返回数值的字符串表示;而通过传递参数,toString()可以输出以二进制、八进制、十六进制,乃至其他任意有效进制格式表示的字符串值。
转型函数 String() :
在不知道要转换的值是不是 null 或 undefined 的情况下,可以使用转型函数 String() ,它能够将任何类型的值转换为字符串。
String() 函数遵循以下转换规则:
- 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果;
- 如果值为 null ,则返回 'null';(字面量)
- 如果值为 undefined ,则返回 'undefined';(字面量)
如:
var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
alert(String(value1)); // '10'
alert(String(value2)); // 'true'
alert(String(value3)); // 'null'
alert(String(value4)); // 'undefined'
如上,我们先后转换了4个值:数值、布尔值、null 和 undefined 。数值和布尔值的转换结果与调用toString()方法得到的结果相同;因为 null 和 undefined 没有 toString() 方法,所以 String() 函数就返回了这两个值的字面量。
————以上知识点来源于《JavaScript高级程序设计(第三版)》