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框架(iframe)操作总结
Apr 16 Javascript
QQ空间顶部折页撕开效果示例代码
Jun 15 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
Dec 08 Javascript
javaScript基础详解
Jan 19 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
Sep 08 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
May 08 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
Jul 26 Javascript
vue+Element-ui实现登录注册表单
Nov 17 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语法学习笔记1
2006/12/17 PHP
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
jupyter notebook 重装教程
2020/04/16 Python
Python自带的IDE在哪里
2020/07/01 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
英语道歉信范文
2014/01/09 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
师德师风演讲稿
2014/05/05 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
任命书格式
2014/06/05 职场文书
公司年终奖分配方案
2014/06/16 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
电子工程求职信
2014/07/17 职场文书
商场消防安全责任书
2014/07/29 职场文书
治庸问责心得体会
2014/09/12 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
入团介绍人意见范文
2015/06/04 职场文书
永不妥协观后感
2015/06/10 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript