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'}