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


Posted in Javascript onNovember 16, 2015

基本上,所有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

Javascript 相关文章推荐
FCK调用方法..
Dec 21 Javascript
php 中序列化和json使用介绍
Jul 08 Javascript
JS操作iframe里的dom(实例讲解)
Jan 29 Javascript
javascript学习笔记(四)function函数部分
Sep 30 Javascript
jQuery on()方法使用技巧详解
Apr 16 Javascript
JavaScript的removeChild()函数用法详解
Dec 27 Javascript
详解JavaScript中的属性和特性
Dec 08 Javascript
原生JS实现图片翻书效果
Feb 16 Javascript
在node中如何使用 ES6
Apr 22 Javascript
Vue列表页渲染优化详解
Jul 24 Javascript
vue 开发企业微信整合案例分析
Dec 02 Javascript
详解微信小程序中var、let、const用法与区别
Jan 11 Javascript
关于javascript中dataset的问题小结
Nov 16 #Javascript
javascript入门教程基础篇
Nov 16 #Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
Nov 15 #Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 #Javascript
javascript 中的 delete及delete运算符
Nov 15 #Javascript
详解JavaScript函数对象
Nov 15 #Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
Nov 15 #Javascript
You might like
收音机术语解释
2021/03/01 无线电
PHP函数学习之PHP函数点评
2012/07/05 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python下载文件时显示下载进度的方法
2015/04/02 Python
Python获取系统默认字符编码的方法
2015/06/04 Python
Python文件和流(实例讲解)
2017/09/12 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
中间件分为哪几类
2012/03/14 面试题
麦当劳辞职信范文
2014/01/18 职场文书
员工培训邀请函
2014/02/02 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
庆祝儿童节标语
2014/10/09 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书