JS中的String()
和toString()
都可以将目标值转换为字符串,但是toString()
无法转换undefined
和null
类型的值,如图所示:

在上面的例子中,数字在调用toString()
方法时会自动封装成数值对象,继承原型对象中的toString()
方法,因此可以成功执行转换;但是不存在Null()
和Undefined()
这样的原生构造函数,所以undefined
和null
无法被自动封装成对象,也就不存在toString()
方法,所以会报错。
另一个区别是:在转换数字类型的值时,toString()
可以通过在括号中添加数字,将数值转换为指定进制的字符串,而String()
不支持。
