String和toString的区别

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

在上面的例子中,数字在调用toString()方法时会自动封装成数值对象,继承原型对象中的toString()方法,因此可以成功执行转换;但是不存在Null()Undefined()这样的原生构造函数,所以undefinednull无法被自动封装成对象,也就不存在toString()方法,所以会报错。

另一个区别是:在转换数字类型的值时,toString()可以通过在括号中添加数字,将数值转换为指定进制的字符串,而String()不支持。