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 相关文章推荐
基于Jquery的开发个代阴影的对话框效果代码
Jul 28 Javascript
js实现三张图(文)片一起切换的banner焦点图
Aug 25 Javascript
jQuery组件easyui对话框实现代码
Aug 25 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
原生js+cookie实现购物车功能的方法分析
Dec 21 Javascript
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
Vue多系统切换实现方案
Jun 05 Javascript
在vue中使用SockJS实现webSocket通信的过程
Aug 29 Javascript
使用Vue实现移动端左滑删除效果附源码
May 16 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
Aug 20 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 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
PHP学习之PHP运算符
2006/10/09 PHP
php设计模式 Singleton(单例模式)
2011/06/26 PHP
php实现加减法验证码代码
2014/02/14 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
js日历功能对象
2012/01/12 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
python list排序的两种方法及实例讲解
2017/03/20 Python
Python制作Windows系统服务
2017/03/25 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
Django中modelform组件实例用法总结
2020/02/10 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
初中学校军训方案
2014/05/09 职场文书
学雷锋宣传标语
2014/06/25 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书