首页 > 代码库 > JavaScript中对象类型的转换小结

JavaScript中对象类型的转换小结

  对象到字符串和对象到数字类型的转换涉及到两个重要的方法,最终的转换结果会受到这两个方法返回结果的影响,这两个方法就是toString和valueOf.所有的对象都会从Object对象中继承到这两个方法.toString方法 用于返回对象的字符串表示(但是其实也可以不返回字符串).对于默认从Object继承而来的toString方法并不会返回太多有意义的内容.而valueOf方法目的是返回一个可以表示对象的原始类型值,但是由于对象的复杂性,大多数情况下根本不可能用一个原始类型值来表示,所以默认的valueOf只是返回对象自身.Date类型是一个特例,这是JavaScript预定义类型之中唯一重写了toString和valueOf方法的类型.

对象类型转换字符串类型步骤如下:

  1. 如果对象有toString方法,就调用toString方法,如果返回的是一个原始类型,把这个原始类型转换成字符串(当然如果toString返回的就是字符串就不需要了)。
  2. 如果对象没有toString方法,或者toString返回的不是原始类型,就尝试调用valueOf方法,如果valueOf方法返回的是原始类型,则将原始类型转换成字符串(如果valueOf放回的就是字符串就不需要了)。
  3. 如果toString方法和valueOf方法都不存在,或者他们的返回类型都不是原始类型,则抛出TypeError异常。