toString()


原文地址

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]"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM