toString 和 valueOf 的不同
-
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 = 0 console.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]
- valueOf 将对象转换成原始值(数字、字符串、布尔)
- 两个办法,个别都不会显示调用,二十隐式调用
- 在数值运算中,个别会先调用 valueOf
- 在字符串运算中,个别会先调用 toString