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 相关文章推荐
用javascript实现画板的代码
Sep 05 Javascript
js跨域和ajax 跨域问题的实现思路
Sep 05 Javascript
前端开发必须知道的JS之原型和继承
Jul 06 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
Jan 22 Javascript
JSON与XML优缺点对比分析
Jul 17 Javascript
JavaScript实现简单获取当前网页网址的方法
Nov 09 Javascript
微信小程序 视图容器组件的详解及实例代码
Jan 19 Javascript
javascript闭包功能与用法实例分析
Apr 06 Javascript
vue.js template模板的使用(仿饿了么布局)
Aug 13 Javascript
vue-swiper的使用教程
Aug 30 Javascript
js String.prototype.trim字符去前后空格的扩展
Aug 23 Javascript
Vue vee-validate插件的简单使用
Jun 22 Vue.js
关于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
PHP也可以?成Shell Script
2006/10/09 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
三年大学自我鉴定
2014/01/16 职场文书
公司股权转让协议书
2014/04/12 职场文书
签约仪式策划方案
2014/06/02 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
2015年端午节活动方案
2015/05/05 职场文书
入党介绍人意见范文
2015/06/01 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript