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 相关文章推荐
单击和双击事件的冲突处理示例代码
Apr 03 Javascript
IE浏览器不支持getElementsByClassName的解决方法
Aug 27 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
Dec 04 Javascript
vue2笔记 — vue-router路由懒加载的实现
Mar 03 Javascript
springmvc接收jquery提交的数组数据代码分享
Oct 28 jQuery
Element-ui中元素滚动时el-option超出元素区域的问题
May 30 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
Jun 15 Javascript
VUE实现密码验证与提示功能
Oct 18 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
解决vue中的无限循环问题
Jul 27 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 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 各种排序算法实现代码
2009/08/20 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
onpropertypchange
2006/07/01 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
微信跳一跳python辅助脚本(总结)
2018/01/11 Python
分析python请求数据
2018/08/19 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
产品发布会策划方案
2014/05/12 职场文书
员工工作表扬信
2015/05/05 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
教师节随笔
2015/08/15 职场文书
小学科学课教学反思
2016/02/23 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js