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的使ListNav兼容中文首字拼音排序的实现代码
Jul 10 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
Jan 31 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
May 05 Javascript
javascript 中that的含义示例介绍
May 14 Javascript
laytpl 精致巧妙的JavaScript模板引擎
Aug 29 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
Jun 10 Javascript
jQuery中deferred对象使用方法详解
Jul 14 Javascript
深入理解vue2.0路由如何配置问题
Jul 18 Javascript
基于vue.js快速搭建图书管理平台
Oct 29 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
Nov 24 Javascript
Node批量爬取头条视频并保存方法
Sep 20 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
May 07 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
请离开include_once和require_once
2013/07/18 PHP
php结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
php递归函数怎么用才有效
2018/02/24 PHP
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
Python实现的端口扫描功能示例
2018/04/08 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
如何利用python读取micaps文件详解
2020/10/18 Python
详解Python中的Lock和Rlock
2021/01/26 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
编程输出如下图形
2013/11/24 面试题
中学教师实习自我鉴定
2013/09/28 职场文书
审核会计岗位职责
2013/11/08 职场文书
清华大学自主招生自荐信
2014/01/29 职场文书
《水上飞机》教学反思
2014/04/10 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
统计员岗位职责
2015/02/11 职场文书
商标侵权律师函
2015/05/27 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
给原生html中添加水印遮罩层的实现示例
2021/04/02 Javascript
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL