javascript中tostring()和valueof()的用法及两者的区别
基本上,所有JS数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决javascript值运算与显示的问题。 1.用法如下: toString()方法:返回对象的字符串表示。 对象 操作 Array 将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。 Boolean 如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。 Date 返回日期的文字表示法。 Error 返回一个包含相关错误消息的字符串。 Function 返回如下格式的字符串,其中 functionname 是被调用 在JavaScript中,`toString()`和`valueOf()`是两种常见的对象方法,它们的作用在于将对象转换成其他类型,尤其是在处理数据的表示和运算时。几乎所有的JavaScript数据类型(除了`null`)都支持这两个方法。 `toString()`方法主要用于将对象转换为字符串表示。根据不同的数据类型,它会返回不同类型的结果: 1. 对于`Array`,`toString()`会将数组的所有元素转换为字符串,并用逗号分隔。 2. `Boolean`类型,如果值为`true`,则返回字符串`"true"`;否则返回`"false"`。 3. `Date`对象会返回日期的文本表示,例如`"Mon Oct 31 2022 14:30:00 GMT+0800 (China Standard Time)"`。 4. `Error`对象会返回包含错误信息的字符串。 5. `Function`对象会返回一个表示函数源代码的字符串,通常形式为`"function functionname() { [native code] }"`。 6. `Number`会返回数字的字符串表示,例如`"123"`。 7. `String`对象会返回自身的值,即字符串本身。 8. 如果是自定义对象,`toString()`默认返回`"[object objectname]"`,其中`objectname`是对象所属的构造函数的名称。 另一方面,`valueOf()`方法则是返回对象的原始值,即基本数据类型: 1. `Array`的`valueOf()`行为与`toString()`和`join()`类似,返回数组元素组成的字符串。 2. `Boolean`返回布尔值本身。 3. `Date`返回自1970年1月1日以来的毫秒数(UTC时间)。 4. `Function`返回函数本身。 5. `Number`返回数字值。 6. 对于自定义对象,`valueOf()`通常返回对象本身,除非重写了该方法。 两者之间的主要区别在于使用场景和返回值类型: - 在进行数值运算时,JavaScript会优先调用`valueOf()`,而在字符串运算中,它会优先调用`toString()`。 - `toString()`总是将内容转换为字符串,而`valueOf()`返回对象的原始值,可能不需要类型转换。 - `valueOf()`主要应用于算术和关系运算,`toString()`则更适合用于显示和输出字符串。 需要注意的是,`null`和`undefined`没有`toString()`或`valueOf()`方法,尝试调用它们会抛出错误。在处理这两种特殊值时,需要特别小心。 在Java中,`parse()`、`valueOf()`和`toString()`有各自的用途: 1. `parse()`方法,如`SimpleDateFormat`的`parse()`,通常用于将字符串解析为日期对象。在基本类型中,`parseInt()`和`parseFloat()`用于将字符串转换为整数或浮点数。 2. `valueOf()`在Java中,如`Integer.valueOf()`,将字符串转换为对应的包装类对象,而非基本类型。要得到基本类型,可以使用包装类的`intValue()`等方法。 3. `toString()`方法用于将对象转换为字符串,包括基本类型,例如`Integer.toString(int)`会将整数转换为字符串。 `toString()`和`valueOf()`在JavaScript和Java中都扮演着转换数据类型的角色,但具体应用场景和返回结果有所不同,需要根据具体需求选择合适的方法。在编写代码时,理解这些差异有助于避免潜在的错误。
- 粉丝: 12
- 资源: 983
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- CC2530无线zigbee裸机代码实现按键控制LED开关.zip
- CC2530无线zigbee裸机代码实现按键控制PWM灯光强度.zip
- CC2530无线zigbee裸机代码实现按键控制流水灯.zip
- 无感FOC电机三相控制高速吹风筒方案 FU6812L+FD2504S 电压AC220V 功率80W 最高转速20万RPM 方案优势:响应快、效率高、噪声低、成本低 控制方式:三相电机无感FOC 闭环方
- CC2530无线zigbee裸机代码实现查询方式使用定时器.zip
- CC2530无线zigbee裸机代码实现串口UART0发送字符串.zip
- CC2530无线zigbee裸机代码实现串口UART0收发字符串.zip
- CC2530无线zigbee裸机代码实现串口发送指令控制LED灯.zip
- CC2530无线zigbee裸机代码实现定时器T1的使用.zip
- CC2530无线zigbee裸机代码实现定时器T3的使用.zip
- 基于51单片机的PWM波形发生器设计(Protues仿真)-毕业设计
- 模块化多电平变流器 MMC 的VSG控制 同步发电机控制 MATLAB–Simulink仿真模型 5电平三相MMC,采用VSG控制 受端接可编辑三相交流源,直流侧接无穷大电源提供调频能量 设置频率
- 锁相环学习电路,有教程 对新手非常友好,一看就懂 1,输出频率800MHz或者1GHz, 采用Ring-VCO的结构 2,输入参考频率20MHz 3,分频器是40-50分频 4,电荷泵电流
- MF000588-ASP.NET信息中心标准化管理系统源码.zip
- 基于51单片机的烟雾采集报警系统(protues仿真)-毕业设计
- 模拟器银河麒麟是基于Linux发行版Ubuntu开发的自主可控操作系统,为我国信息基础建设提供了重要支撑 截至目前,银河麒麟V10的软件仓库已经提供了大量国产软件,但在特定情况下,我们可能还是希望使用