对于对象的转换,当在一个数字环境时JS首先调用该对象的ValueOf()方法,如果这个方法返回一个基本类型的值,这个值会被使用,然而在大多数情况下,valueOf()方法返回的是对象自己,在这种情况下,JS先使用toString()方法把对象转换为一个字符串,然后再试图把该字符串转换为一个数字。 (valueOf()返回原始类型的值重在运算,toString()返回字符串重在显示)
如下面的转换:
Number(对象) 、 isNaN(对象)
Number(对象) :如果是对象则调用对象的valueOf()方法,然后依次照相应的规则转换返回的值。如果转换的结果不是数字,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串。(Number()方法的返回值只有两种分别是数值字面量和NaN,NaN也属于number类型的一种)
如下面的转换:
Number(对象) 、 isNaN(对象)
Number(对象) :如果是对象则调用对象的valueOf()方法,然后依次照相应的规则转换返回的值。如果转换的结果不是数字,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串。(Number()方法的返回值只有两种分别是数值字面量和NaN,NaN也属于number类型的一种)