toString见名知意,转成字符串
var a = 123; a.toString(); //"123" var b = "abc"; b.toString(); //"abc" var c = [1,2,3]; c.toString(); //"1,2,3" var d = null; d.toString(); //Cannot read property 'toString' of null var e = undefined; e.toString(); //Cannot read property 'toString' of undefined var f = true; f.toString(); //"true"
可以看到null和undefined没有toString方法
那么toString除了转字符串还有哪些作用呢?我们继续看
var num = 123; num.toString(2); //"1111011" 转成2进制 num.toString(16); //"7b" 转成16进制
我们可以看到toString还可用于进制转换;除此之外toString还有一个绝活,那就是用于类型判断
var arr = [1,2,3]; Object.prototype.toString.call(arr); // "[object Array]"; var a = null; Object.prototype.toString.call(a); //"[object Null]"; var b = new Date(); Object.prototype.toString.call(b); //"[object Date]"; var c = undefined; Object.prototype.toString.call(c); // "[object Undefined]"; if(Object.prototype.toString.call(arr) == '[object Array]'){ alert('是数组'); }
其他的类型我就不在这里做演示了,大家可以自己演示一下