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 相关文章推荐
js简单实现标签云效果实例
Aug 06 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
Nov 29 Javascript
学习JavaScript设计模式之单例模式
Jan 19 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 Javascript
Angularjs中数据绑定的实例详解
Aug 25 Javascript
vue系列之动态路由详解【原创】
Sep 10 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
Jul 01 Javascript
JS加密插件CryptoJS实现的DES加密示例
Aug 16 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
Aug 28 Javascript
VScode格式化ESlint方法(最全最好用方法)
Sep 10 Javascript
使用Promise封装小程序wx.request的实现方法
Nov 13 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 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 无线电
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
js下将字符串当函数执行的方法
2011/07/13 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
Python处理中文标点符号大集合
2018/05/14 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
python实例化对象的具体方法
2020/06/17 Python
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
会计专业毕业生自我鉴定
2013/10/29 职场文书
土建施工员岗位职责
2014/07/16 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
运动会跳远广播稿
2015/08/19 职场文书
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers