toString用法:將物件轉換成字串
阿新 • • 發佈:2019-02-19
想一下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