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 相关文章推荐
js window.event对象详尽解析
Feb 17 Javascript
单独使用CKFinder选择图片的方法
Aug 21 Javascript
常见JS效果之图片减速度滚动实现代码
Dec 08 Javascript
删除select中所有option选项jquery代码
Aug 12 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
Apr 10 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
Aug 15 Javascript
jquery实现的简单二级菜单效果代码
Sep 22 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
Jul 13 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
浅谈redux, koa, express 中间件实现对比解析
May 23 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
关于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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
javascript 内存回收机制理解
2011/01/17 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
深入理解React高阶组件
2017/09/28 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
pygame学习笔记(2):画点的三种方法和动画实例
2015/04/15 Python
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
tensorflow多维张量计算实例
2020/02/11 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
怎么样写好简历中的自我评价
2013/10/25 职场文书
应届生服务员求职信
2013/10/31 职场文书
小学生家长评语集锦
2014/01/30 职场文书
大学生校园创业计划书
2014/02/08 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
英语分层教学实施方案
2014/06/15 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
企业培训简报范文
2015/07/20 职场文书
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript