1、如果对象有valueOf方法,则调用该方法,并返回相应的结果;
2、当调用valueOf返回的依然不是数字,则会调用对象的toString方法,并返回相应的结果;
3、否则抛出异常。
toNumbere = (
o,
parsed = (o.valueOf && o.valueOf()) || o.toString(),
isN = /^[-+]{0,1}\d*\.{0,1}\d+$/.test(parsed)
) => (isN && parseFloat(parsed)) || NAN;