JavaScript中tostring()和valueof()的用法及两者的区别

转载:https://www.jb51.net/article/74888.htm
本文给大家介绍javascript中tostring()和valueof()的用法及两者的区别,对js tostring valueof相关知识感兴趣的朋友一起学习吧

基本上,所有JS数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决JavaScript值运算与显示的问题。

1. 用法
  1. toString()方法:返回对象的字符串表示。

    对象操作
    ArrayArray 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。
    Boolean如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。
    Date返回日期的文字表示法。
    Error返回一个包含相关错误消息的字符串。
    Function返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称:function functionname( ) { [native code] }
    Number返回数字的字符串表示。
    String返回 String 对象的值。
    默认返回 “[object objectname]”,其中 objectname 是对象类型的名称。
  2. valueOf()方法:返回指定对象的原始值。

    对象返回值
    Array返回数组对象的原始值
    BooleanBoolean 值。
    Date存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数。
    Function函数本身。
    Number数字值。
    Object对象本身。这是默认情况。
    String字符串值。
2. 两者的共同点与不同点
  • 共同点:在 JavaScript 中,toString()方法和valueOf()方法,在输出对象时会自动调用。

  • 不同点:二者并存的情况下,在数值运算中,优先调用了valueOf,字符串运算中,优先调用了toString。

例子1如下:

var obj = {};
obj.valueOf = function(){
  return 10;
}
obj.toString = function(){
  return "www";
}
 
var result = obj + 1; //var result = obj.valueOf() + 1; 11
alert(result);
alert(obj); //alert(obj.toString()); 'www'

例子2如下:

function obj(){ }
obj.prototype.toString = function(){
  return 'dfsf';
};
obj.prototype.valueOf = function(){
  return '3333';
};
var e = new obj();
var o = new obj();
alert(o);//alert(obj.toString()) 'dfsf' 
alert(o+e);//alert(obj.valueOf()+obj.valueOf()) '33333333'
3. toString vs valueOf的差别
  • 返回值类型的差别:

    1. toString()一定将所有内容转为字符串
    2. valueOf()取出对象内部的值,不进行类型转换
  • 用途的差别:

    1. valueOf()专用于算数计算和关系运算
    2. toString()专用于输出字符串
  • 共同的缺点:无法获取null和undefined的值

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值