toString 和 valueOf的不同

  1. toSting 是把一个值或对象,转换成字符串,也就是除了获取对象返回[object, Object],函数返回fun,日期返回工夫, 其余的都是返回文本值,因为function 数组 和 日期 都重写了tostring办法

    console.log('1'.toString())console.log('aaa'.toString())console.log(function(){}.toString())console.log([1,2,4].toString())console.log(false.toString())console.log(new Date().toString())let num = 0console.log(num.toString())console.log(RegExp.toString())console.log({a:1}.toString())// 1// aaa// function(){}// 1,2,4// false// Thu Jul 30 2020 22:24:04 GMT+0800 (中国规范工夫)// 0// function RegExp() { [native code] }// [object Object]
  2. valueOf 将对象转换成原始值(数字、字符串、布尔)
  • 两个办法,个别都不会显示调用,二十隐式调用
  • 在数值运算中,个别会先调用valueOf
  • 在字符串运算中,个别会先调用toString