js通过Number方法将对象转换为数值的问题

111 阅读1分钟
let o = {
  valueOf() {
    return "aa22";
  },
  toString() {
    return "11";
  },
};
console.log(Number(o));

js高级程序对Number方法转换Object这么描述的

对象,调用valueOf()方法,并按照上述规则转换返回的值。如果转换结果 是NaN,则调用toString()方法,再按照转换字符串的规则转换 所以对象ovalueof 返回的字符串转成成了NaN为啥没有进一步调用toString方法呢