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 相关文章推荐
extjs tabpanel限制选项卡数量实现思路及代码
Apr 02 Javascript
究竟什么是Node.js?Node.js有什么好处?
May 29 Javascript
JS访问SWF的函数用法实例
Jul 01 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
jQuery-mobile事件监听与用法详解
Nov 23 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
Jan 13 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
Jan 20 Javascript
解决vue-cli + webpack 新建项目出错的问题
Mar 20 Javascript
微信小程序发送短信验证码完整实例
Jan 07 Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 Javascript
详解React中共享组件逻辑的三种方式
Feb 02 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与MySQL开发的8个技巧小结
2010/12/17 PHP
PHP取进制余数函数代码
2012/01/19 PHP
Yii全局函数用法示例
2017/01/22 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
JS 统计时间
2021/03/09 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
vue 实现websocket发送消息并实时接收消息
2019/12/09 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
Python字符转换
2008/09/06 Python
Python列表append和+的区别浅析
2015/02/02 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
python交互界面的退出方法
2019/02/16 Python
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
办公室文员工作职责
2014/01/31 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
入党自荐书范文
2015/03/05 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS