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 相关文章推荐
PJ Blog修改-禁止复制的代码和方法
Oct 25 Javascript
防止动态加载JavaScript引起的内存泄漏问题
Oct 08 Javascript
有关于JS构造函数的重载和工厂方法
Apr 07 Javascript
jQuery实现强制cookie过期方法汇总
May 22 Javascript
jquery实现简单实用的打分程序实例
Jul 23 Javascript
Jquery调用iframe父页面中的元素及方法
Aug 23 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
Sep 23 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
Dec 22 Javascript
Vue2.0 事件的广播与接收(观察者模式)
Mar 14 Javascript
iview日期控件,双向绑定日期格式的方法
Mar 15 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
Sep 11 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
PHP编程网上资源导航
2006/10/09 PHP
一个取得文件扩展名的函数
2006/10/09 PHP
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
php7性能提升的原因详解
2019/10/13 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
jQuery 创建Dom元素
2010/05/07 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
JS左右无缝轮播功能完整实例
2019/05/16 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
使用Python实现正态分布、正态分布采样
2019/11/20 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
创业女性典型材料
2014/05/02 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
优秀员工推荐材料
2014/12/20 职场文书
爱心捐款感谢信
2015/01/20 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
在redisCluster中模糊获取key方式
2021/07/09 Redis