JavaScript中toString()与String()转换字符串的区别详解

作者:阿沐

时间:2026-10-21

浏览:182

本文详细解析JavaScript中String()函数与.toString()方法在字符串转换上的核心差异。重点对比两者对null和undefined的处理机制,指出.toString()无法处理空值会报错,而String()可安全转换。同时说明.toString()支持进制参数,String()不支持,帮助开发者根据场景选择合适方法。

文章目录

引言:两种转换方式的概述

在JavaScript中,String()函数与.toString()方法均可用于将数据转换为字符串类型,但二者在实现机制和适用场景上存在显著区别。

.toString()方法的限制与进制转换功能

首先,.toString()方法适用于大多数数据类型,但其无法处理null和undefined值,调用时会抛出错误。

以布尔值false为例,演示其转换过程。


 var str = false.toString();
 console.log(str, typeof str);

执行后返回字符串'false',且类型检查结果为string。

接下来测试null和undefined是否可通过.toString()转换为字符串。


 var str = null.toString();
 console.log(str, typeof str);

运行代码时程序报错,提示无法读取null的属性。


 var str = undefined.toString();
 console.log(str, typeof str);

同样地,对undefined调用该方法也会引发错误。

.toString()方法允许接收一个可选参数,该参数指定目标进制,从而生成对应进制的字符串表示。

调用.toString(2)可将数值转换为二进制字符串。

调用.toString(8)可将数值转换为八进制字符串。

调用.toString(10)可将数值转换为十进制字符串。

调用.toString(16)可将数值转换为十六进制字符串。

String()函数对null和undefined的处理

其次,全局函数String()能够将null和undefined安全转换为字符串,但它不支持进制转换参数。

以null为例,演示String()的转换效果。


 var str = String(null);
 console.log(str, typeof str);

返回结果为字符串'null',类型检查结果为string。

再测试undefined的转换情况。


 var str = String(undefined);
 console.log(str, typeof str);

返回结果为字符串'undefined',类型检查结果为string。

综上所述,.toString()支持进制转换但排斥null/undefined,而String()能处理null/undefined但不支持进制转换。开发者应根据具体数据类型和需求选择合适的方法。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章