valueOf()与toString()

toString()

  // 数字进制转换
        console.log((1).toString()) // 1
        console.log((10).toString(2)) // 1010
        console.log((10).toString(4)) // 22
        console.log((10).toString(8)) // 12
        console.log((10).toString(10)) // 10 
        console.log((10).toString(16)) // a
        console.log(('11111').toString()) //11111
        console.log(false.toString()) //false
        console.log(true.toString()) //true
        // 原型上不存在toString()
        // console.log(undefined.toString()) // Cannot read properties of undefined (reading 'toString')
        // console.log(null.toString()) // Cannot read properties of null (reading 'toString')
        console.log((function(){}).toString()) // function(){}
        console.log(({a:1}).toString()) //[object Object]
        console.log(([1,2,3]).toString()) // 1,2,3 
        console.log((new Date()).toString()) //Mon Jun 13 2022 14:08:56 GMT+0800 (中国标准时间)
        var test= Object.prototype.toString;
        console.log(test.call(1));//[object Number]
        console.log(test.call("1"));//[object String]
        console.log(test.call(false));//[object Boolean]
        console.log(test.call({a:1}));//[object Object]
        console.log(test.call(undefined));//[object Undefined]
        console.log(test.call(null));//[object Null]
        console.log(test.call(function(){}));//[object Function]
        console.log(test.call([1,2,3,4]));//[object Array]
        console.log(test.call(new Date()));//[object Date]
        console.log(test.call(new RegExp()));//[object RegExp]
        console.log(test.call(new Map()));//[object Map]

valueOf()

        console.log((1).valueOf()) //1 number
        console.log((10).valueOf(2)) // 10 自动忽略传入的参数2
        console.log(('1').valueOf()) // 1 string
        console.log((false).valueOf()) // false
        console.log((true).valueOf()) // true
        // console.log((null).valueOf()) // Cannot read properties of null (reading 'valueOf')
        // console.log((undefined).valueOf()) // Cannot read properties of undefined (reading 'valueOf')
        console.log((function(){}).valueOf()) //ƒ (){}
        console.log(([1,2,3]).valueOf()) //[1, 2, 3]
        console.log((new Date()).valueOf()) //1655101282926 此刻的时间戳
        console.log(new Date(1655101282926))

共同点

    1、null、undefined都没有toString() 与 valueOf()方法
    2、toString()可以接收参数 把数字类型转换成不同进制的数 而valueOf()只会返回原始值
    3、toString() 方法可以用于检测数据类型 Object.prototype.toString 配合 indexOf()
posted @ 2022-06-13 14:39  清风~~徐来  阅读(49)  评论(0编辑  收藏  举报