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 Event学习第十一章 按键的检测
Feb 10 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
Aug 28 Javascript
js 调用父窗口的具体实现代码
Jul 15 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
Jun 07 Javascript
jQuery Validate初步体验(一)
Dec 12 Javascript
JavaScript实现两个select下拉框选项左移右移
Mar 09 Javascript
深究AngularJS中ng-drag、ng-drop的用法
Jun 12 Javascript
JavaScript 隐性类型转换步骤浅析
Mar 15 Javascript
微信小程序自定义组件之可清除的input组件
Jul 17 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 20 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水印
2007/03/16 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
小程序hover-class点击态效果实现
2019/02/26 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
基于python实现聊天室程序
2018/07/27 Python
500行python代码实现飞机大战
2020/04/24 Python
python设置表格边框的具体方法
2020/07/17 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
旅游管理专业个人求职信范文
2013/12/24 职场文书
创新社会管理心得体会
2014/09/12 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
质量负责人岗位职责
2015/02/15 职场文书
倡议书的格式写法
2015/04/28 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
Redis基本数据类型Set常用操作命令
2022/06/01 Redis