美文网首页
js 使用toSting

js 使用toSting

作者: 鹏雨燕 | 来源:发表于2020-05-14 10:56 被阅读0次
    10.toString(); //"10"
    (10).toString(2); //10进制转2进制 1010
    
    const arr=[1,2,3];
    Object.prototype.toString.call(arr); //"[object Array]" 
    Array.prototype.toString.call(arr); //1,2,3
    [1,2].toString(); // "1,2"  得到字符串
    

    在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object”,“function”,“symbol” (ES6新增)七种。

    数组、null、对象,使用 typeof 都会统一返回 “object” 字符串。所以我们用toString

    js中的对象都继承自Object,所以当我们在某个对象上调用一个方法时,会先在该对象上进行查找,如果没找到则会进入对象的原型(也就是.prototype)进行查找,如果没找到,同样的也会进入对象原型的原型进行查找,直到找到或者进入原型链的顶端Object.prototype才会停止。
    当我们使用arr.toString()时,不能进行复杂数据类型的判断,因为它调用的是Array.prototype.toString,虽然Array也继承自Object,但js在Array.prototype上重写了toString,而我们通过toString.call(arr)实际上是通过原型链调用了Object.prototype.toString。

    console.log(Object.prototype.toString.call('123'));    //[object String]
    console.log(Object.prototype.toString.call(undefined));    //[object Undefined]
    console.log(Object.prototype.toString.call(true));    //[object Boolean]
    console.log(Object.prototype.toString.call({}));    //[object Object]
    console.log(Object.prototype.toString.call([]));    //[object Array]
    console.log(Object.prototype.toString.call(function(){}));    //[object Function]
    console.log(Object.prototype.toString.call(null));    //[[object Null]]
    

    备注:了解symbol见阮一峰Symbol文档

    相关文章

      网友评论

          本文标题:js 使用toSting

          本文链接:https://www.haomeiwen.com/subject/rjwznhtx.html