toString() 方法可把 Date數據對象轉換為字符串,並返回結果
可知js這中的Date類型存在六種:分為undefined;null;Boolean;number;String和object型。在這六種中,undefined和null兩種沒有.toString(),如果寫了會報錯。
Boolean:會根據其var變量內容返回true or flase兩種。
示例:var num1=false;document.write(num1.toString()+"</br>");
結果:flase;
number:.toString()括號內可以帶有一個參數(2~36【0到9和26個英文字母】),表示數值所轉化的進制,默認為10進制。
示例:
var num2=18; document.write("數值為:"+num2+"</br>"); document.write("二進制:"+num2.toString(2)+"</br>"); document.write("八進制:"+num2.toString(8)+"</br>"); document.write("十進制:"+num2.toString()+"</br>"); document.write("十六進制:"+num2.toString(16)+"</br>");
結果:
數值為:18
二進制:10010
八進制:22
十進制:18
十六進制:12
String就不用說了。。。。
object:首先得說明object數據類型本身具有內置的.toString(),如果直接的object.toString(),都會得到個相同的結果-----[object Object] 。
示例:
function Dog(name,sex,color){ this.name=name; this.sex=sex; this.color=color; } var dog=new Dog("jack","female","black"); document.write( dog.toString());
所以我們可以利用prototype屬性(翻譯:原型),改變其內置自帶的.toString()方法。
示例:
function Dog(name,sex,color){ this.name=name; this.sex=sex; this.color=color; } Dog.prototype.toString=function dogtoString(){ var ret="This is a named "+this.name+" "+this.color+" "+this.sex+" dog"; return ret; } var dog=new Dog("jack","female","black"); document.write(dog.toString());
結果;
This is a named jack black female dog
順帶說一句:prototype屬性允許開發者往對象中添加/修改屬性和方法
示例代碼:
function Dog(name,sex,color){ this.name=name; this.sex=sex; this.color=color; } //修改方法 Dog.prototype.toString=function dogtoString(){ var ret="This is a named "+this.name+" "+this.color+" "+this.sex+" dog"; return ret; } //添加方法 Dog.prototype.togaga=function gaga(){ return "The method I added!"; } //添加屬性 Dog.prototype.breed=null; var dog=new Dog("jack","female","black"); dog.breed="breed"; document.write(dog.breed+"</br>"); document.write(dog.toString()+"</br>"); document.write(dog.togaga());
結果:
breed
This is a named jack black female dog
The method I added!
當需要判斷數據類型的時候可以用 Object.prototype.toString.call(param);
Object原型上的toString方法;使用call方法可以修改toString方法內部的this指向,將this指向為call里面的第一個參數;
var bool = true; Object.prototype.toString.call(bool); "[object Boolean]" var str = 'hello world'; Object.prototype.toString.call(str); "[object String]" var num = 123; Object.prototype.toString.call(num); "[object Number]" var arr = [1,2,3]; Object.prototype.toString.call(arr); "[object Array]" var fn = function(){}; Object.prototype.toString.call(fn); "[object Function]" var obj = {a:1}; Object.prototype.toString.call(obj); "[object Object]"