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 相关文章推荐
Eval and new funciton not the same thing
Dec 27 Javascript
用unescape反编码得出汉字示例
Apr 24 Javascript
Js与Jq获取浏览器和对象值的方法
Mar 18 Javascript
AngularJS基础 ng-mousemove 指令简单示例
Aug 02 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
Oct 10 Javascript
JS闭包用法实例分析
Mar 27 Javascript
JavaScript队列的应用实例详解【经典数据结构】
Apr 12 Javascript
微信小程序之页面跳转和参数传递的实现
Sep 29 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
layui2.0使用table+laypage实现真分页
Jul 27 Javascript
微信小程序封装多张图片上传api代码实例
Dec 30 Javascript
vue中的使用token的方法示例
Mar 10 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
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
PHP打印输出函数汇总
2016/08/28 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
小程序实现长按保存图片的方法
2019/12/31 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
python使用Berkeley DB数据库实例
2014/09/26 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
python中os.remove()用法及注意事项
2021/01/31 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
应届毕业生应聘自荐信
2013/12/07 职场文书
优秀干部获奖感言
2014/01/31 职场文书
《云房子》教学反思
2014/04/20 职场文书
竞选班委演讲稿
2014/04/28 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
初中信息技术教学计划
2015/01/22 职场文书
小学校本教研总结
2015/08/13 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python
一文搞懂Python Sklearn库使用
2021/08/23 Python