1. 程式人生 > >toString用法:將物件轉換成字串

toString用法:將物件轉換成字串

想一下toString在哪裡

    <script>
       // var arr = [];
       // alert( arr.toString ); //可以找到 function toString() { [native code] } 的方法

        function Aaa() {

        }
        var a1 = new Aaa();
        alert( a1.toString); // function toString() { [native code] }

        // 其實所有的物件,不管是系統物件還是我們寫的物件,都有function toString() { [native code] }
</script>

toString() : 系統物件下面都是自帶的,自己寫的物件都是通過原型鏈找Object下面的

       var arr = [];
       alert( arr.toString == Object.prototype.toString ); // false
        function Aaa() {

        }
        var a1 = new Aaa();
        alert( a1.toString == Object.prototype.toString ); //true

toString()的作用

1、toString() : 把物件轉成字串

        var arr = [1,2,3];

        alert( typeof arr.toString() ); //型別被轉為string型別了
        alert( arr.toString() ); // '1,2,3'

2、有的時候我們想按照自己的方式將變數轉成字串,但又不行遵守他的規則,我們可以自己寫

        var arr = [1,2,3];
        Array.prototype.toString = function () { //把toString原本的方法覆蓋掉
            //我們可以寫按照自己寫的規則返回資料
return this.join('+'); }; alert( arr.toString() ); // '1+2+3'

3、toString()應用,進位制轉換

        // 進位制轉換
        var num = 255;
        // 將num轉成16進位制
        alert(num.toString(16) ); //'ff'
        //進位制轉換應用:如顏色值轉換,將16進位制轉成RGBA的,或者將RGBA轉成16進位制的

4、toString()應用,例一toString()做型別的判斷

var arr = [];
alert( Object.prototype.toString.call(arr) ); // '[object Array]' 陣列物件
var arr = {};
alert( Object.prototype.toString.call(arr) ); // '[object Object]' JSON物件
var arr = new Date;
alert( Object.prototype.toString.call(arr) ); // '[object Date]' 時間物件
var arr = new RegExp;
alert( Object.prototype.toString.call(arr) ); // '[object RegExp]' 正則物件
var arr = null;
alert( Object.prototype.toString.call(arr) ); // '[object Null]' 空物件

5、利用toString()判斷是不是陣列
判斷是不是陣列推薦用法

var arr = [];
alert( Object.prototype.toString.call(arr) == '[object Array]' ); //true