javascript中tostring()和valueof()的用法及两者的区别
作者:bea
基本上,所有JS数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决javascript值运算与显示的问题。 1.用法如下: toString()方法:返回对象的字符串表示。 对象 操作 Array 将Array的元素转换为字符串。结果字符串由逗号分隔,且连接起来。 Boolean 如果 Boolean 值是true,则返回 “true”。否则,返回 “false”。
基本上,所有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
有用 | 无用
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
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 实例代码详解jquery.slides.js
- jQuery实现标题有打字效果的焦点图代码
- JavaScript中对DOM节点的访问、创建、修改、删除
- 常用javascript表单验证汇总
- jquery验证邮箱格式是否正确实例讲解
- 跟我学习javascript的call(),apply(),bind()与回调
- 跟我学习javascript的函数调用和构造函数调用
- 12种JavaScript常用的MVC框架比较分析
- 跟我学习javascript的函数和函数表达式
- 使用JQuery FancyBox插件实现图片展示特效
- uploadify多文件上传参数设置技巧
- 跟我学习javascript的var预解析与函数声明提升
- 跟我学习javascript的全局变量
- 浅析JavaScript访问对象属性和方法及区别
- 跟我学习javascript的基本类型和引用类型
- 简单实现限制uploadify上传个数
- 跟我学习javascript的隐式强制转换
- 跟我学习javascript的浮点数精度
- 跟我学习javascript的严格模式