js中toString和valueOf的区别

如题所述

    toString:返回对象的字符串表示形式。

    语法:objectname.toString([radix])

    objectname要为其搜索字符串表示形式的对象。  

    radix可选,为将数字值转换为字符串指定一个基数。  此值仅用于数字。

       toString 方法是一个所有内置的 JavaScript 对象的成员。  它的行为取决于对象的类型:


2.valueOf:返回指定对象的基元值。

语法:object.valueOf( )

object 引用是任何内部 JavaScript 对象,将通过不同的方式为每个内部 JavaScript 对象定义 valueOf 方法。Math 和 Error 对象都没有 valueOf 方法。


总结:toString主要是把对象转换为字符串,而valueOf主要把对象转换成一个基本数据的值这就是他们之间最基本的区别。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-06
”==”与”===”是不同的,一个是判断值是否相等,一个是判断值及类型是否完全相等。
下面的规则用于判定===运算符比较的两个值是否相等的判断条件
•如果两个值的类型不同,它们就不相同。
•如果两个值是数字,而且值相同,那么除非其中一个或两个都是NaN(这种情况它们不是等同的),否则它们是等同的。值NaN永远不会与其他任何值等同,包括它自身(奇怪的家伙),要检测一个值是否是NaN,可以使用全局函数isNaN()。
•如果两个值都是字符串,而且在串中同一位置上的字符完全相同,那么它们就完全等同。如果字符串的长度或内容不同,它们就不是等同的。
•如果两个值都是布尔型true,或者两个值都是布尔型false,那么它们等同。
•如果两个值引用的是同一个对象、数组或函数,那么它们完全等同。如果它们引用的是不同的对象(数组或函数),它们就不完全等同,即使这两个对象具有完全相同的属性,或两个数组具有完全相同的元素。
•如果两个值都是null或都是undefined,它们完全相同。
第2个回答  2016-09-06
js权威指南中提到了
toString主要是把对象转换为字符串;
valueOf主要把对象转换成一个基本数据的值;本回答被网友采纳
第3个回答  2016-09-11
toString是把对象转换为字符串;
valueOf是把对象转换成一个基本数据的值

valueOf偏向于运算,toString偏向于显示。
1、 在进行对象转换时(例如:alert(a)),将优先调用toString方法,如若没有重写toString将调用valueOf方法,如果两方法都没有重写,按Object的toString输出。
2、 在进行强转字符串类型时将优先调用toString方法,强转为数字时优先调用valueOf。
3、 在有运算操作符的情况下,valueOf的优先级高于toString。