toString()
每个字符串都有一个toString()方法,该方法返回字符串的一个副本(当前函数源代码的字符串),但是null和undefined值没有这个方法。
toString()一般不用传参,也可以传入基数(进制数)为参,默认十进制。
var num = 10;
console.log(num.toString()); // "10"
console.log(num.toString(2)); // "1010"
console.log(num.toString(8)); // "12"
console.log(num.toString(10)); // "10"
console.log(num.toString(16)); // "a"
String(obj)
String(obj)转型函数是JavaScript的全局函数,能够将任何类型的值转换为字符型,包括null和undefined。
转换规则:
如果该值有toString()方法,调用该方法(没有参数)并返回相应的结果。
如果是null,返回null。
如果是undefined,返回undefined。
var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
console.log(String(value1)); // "10"
console.log(String(value2)); // "true"
console.log(String(value3)); // "null"
console.log(String(value4)); // "undefined"
toString()和String(obj)的区别
toString()是每个字符串都有的方法,String(obj)是JavaScript的一个全局函数。
null和undefined不具备toString()方法,String(obj)函数可对null和undefined进行处理。
调用String(obj)前会先调用toString()。
valueOf()
valueOf()是对象的一个方法,返回指定对象的原始值。但是JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。因此,不同类型对象的valueOf()方法的返回值和返回值类型均可能不同。
总的来说,该方法就是返回对象的字符串、数值或布尔值等表示。
toString()和valueOf()的区别
toString()是每个字符串都拥有的方法,而valueOf()是对象的方法。
obj.toString()返回的是对象的字符串表示,而obj.valueOf()返回的是对象本身。
var obj = new Object(); obj = {test:'123'}; console.log(obj.toString()); // [Object Object] console.log(obj.valueOf()); // {test:'123'}