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

所属分类: 网络编程 / JavaScript 阅读数: 1224
收藏 0 赞 0 分享

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

1.用法如下:

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

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

valueOf()方法:返回指定对象的原始值。

对象 返回值
Array 数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作与 Array.toString 和 Array.join方法相同。
Boolean Boolean 值。
Date 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC
Function 函数本身。
Number 数字值。
Object 对象本身。这是默认情况。
String 字符串值。

2.两者的共同点与不同点:

共同点:在 JavaScript 中,toString()方法和valueOf()方法,在输出对象时会自动调用。

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

例子1如下:

<script>
 var obj = {};
 obj.valueOf = function()
 {
 return 10;
 }
 obj.toString = function()
 {
 return "return value";
 }

 var result = obj + 1; //var result = obj.valueOf() + 1;
 alert(result);
 alert(obj); //alert(obj.toString());
</script>

例子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()) 
 alert(o+e);//alert(obj.valueOf()+obj.valueOf())
</script>

  ****toString vs valueOf的差别:

返回值类型的差别:

              1. toString一定将所有内容转为字符串

              2. valueOf取出对象内部的值,不进行类型转换

用途的差别:

              1. valueOf专用于算数计算和关系运算

              2. toString专用于输出字符串

共同的缺点:无法获取null和undefined的值

PS:Java中parse()和valueOf(),toString()的区别

1.parse()是SimpleDateFomat里面的方法,你说的应该是parseInt()或parsefloat()这种方法吧,

顾名思义 比如说parseInt()就是把String类型转化为int类型。

String a= "123";

 int b = Integer.parseInt(a);

这样b就等于123了。

2.ValueOf()方法比如说 Integer.valueOf() 是把String类型转化为Integer类型(注意:是Integer类型,而不是int类型,int类型是表示数字的简单类型,Integer类型是一个引用的复杂类型)
如:

String a= "123";
Integer c =Integer.valueOf(a);
//Integer类型可以用intValue方法转化为int类型
int b =c.intValue();

这时候这个b就等于123了

3. toString()可以把一个引用类型转化为String字符串类型。

下面举个例子与2相反,把Integer转化为String类型:

Integer a = new Integer(123);
String b =a.toString();

这时候b就是 "123" 了

                       int
          parseInt()
String                      intValue() 
         ValueOf()           
                    Integer

更多精彩内容其他人还在看

BootStrap数据表格实例代码

本文通过实例代码给大家分享了BootStrap数据表格的相关知识,感兴趣的朋友一起看看吧
收藏 0 赞 0 分享

基于vue的短信验证码倒计时demo

这篇文章主要介绍了基于vue的短信验证码倒计时demo,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解React Native开源时间日期选择器组件(react-native-datetime)

本篇文章主要介绍了详解React Native开源时间日期选择器组件(react-native-datetime),具有一定的参考价值,有兴趣的可以了解一下
收藏 0 赞 0 分享

JS库particles.js创建超炫背景粒子插件(附源码下载)

particles.js用于创建粒子的轻量级 JavaScript 库。使用方法非常简单,代码也很容易实现,下面通过本文给大家分享JS库particles.js创建超炫背景粒子插件附源码下载,需要的朋友参考下吧
收藏 0 赞 0 分享

JS库之Waypoints的用法详解

waypoints的功能非常强大,一款用于捕获各种滚动事件的插件,下面跟随脚本之家小编一起学习JS库之Waypoints的用法吧
收藏 0 赞 0 分享

强大的JavaScript响应式图表Chartist.js的使用

本篇文章主要介绍了强大的JavaScript响应式图表Chartist.js的使用,具有一定的参考价值,有兴趣的可以了解一下
收藏 0 赞 0 分享

详解wow.js中各种特效对应的类名

本篇文章主要介绍了wow.js中各种特效对应的类名 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

JS库之Highlight.js的用法详解

highlight.js是一款轻量级的Web代码语法高亮库。下面通过实例代码给大家分享JS库之Highlight.js的用法详解,感兴趣的朋友跟随脚本之家小编一起学习吧
收藏 0 赞 0 分享

详解动画插件wow.js的使用方法

本篇文章主要介绍了动画插件wow.js的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

JS库 Highlightjs 添加代码行号的实现代码

Highlightjs是一款优秀的代码高亮Js组件,可以很方便地对各种语言编写的代码添加语法高亮样式。本文重点给大家介绍Highlightjs 添加代码行号的实现代码,需要的朋友参考下吧
收藏 0 赞 0 分享
查看更多