ValueOf()和toString()

var colors = ["red", "blue", "green"]; // 创建一个包含3 个字符串的数组
console.log(colors.toString()); // red,blue,green
console.log(colors.valueOf()); // red,blue,green
console.log(colors); // red,blue,green
/*valueOf和toString方法区别*/
var arr = [1, 2, 3];
/*判断是否为数组*/
console.log(Array.isArray(arr.valueOf())); //true
console.log(Array.isArray(arr.toString())); //false
/*
 *其实valueOf()调用完以后还是返回一个数组
 *这个数组被alert的时候会调用toString()函数
 *所以不是valueOf()和toString()函数相同,而是,根本就是间接的调用了toString()函数!
 */
arr.toString = function() {
    console.log("你调用了toString函数");
}
console.log(arr.valueOf());
console.log(arr.toString());
// 而对于数值,我们可以调用valueOf的时候直接可以获得数字进行计算,
// 不必转化成字符串,所以不会调用toString反言之,
// 如果我们需要获得操作对象的字符串形式的时候就会调用其toString函数
/*注:数字,只使用toString方法,当为字符串时,会自动调用valueof方法*/
var c = {
    i: 11111,
    valueOf: function() {
        console.log("你调用了c的valueOf函数");
        return this.i;
    },
    toString: function() {
        console.log("你调用了c的toString函数");
        return this.i;
    }
};
// 如果要求的是原始值那么就会调用valueOf,
// 如果要求的是字符串那么就会调用toString。
alert(+c);//valueOf
alert(c);//tostring
时间: 2024-08-01 09:43:04

ValueOf()和toString()的相关文章

关于valueOf和toString

//大概...... 前言 基本上,所有JS数据类型都拥有这两个方法,null除外.它们俩解决javascript值运算与显示的问题,重写会加大它们调用的优化. 测试分析 先看一例: var aaa = {   i: 10,   valueOf: function() { return this.i+30; },   toString: function() { return this.valueOf()+10; }  } alert(aaa > 20); // true  alert(+aaa

Simulate getter in JavaScript by valueOf and toString method

function Foo(a, b) { this.a = a; this.b = b; // simulate getter via valueOf and toString method this.sum = { valueOf: function () { return a + b }, toString: function () { return a + b } } } alert(new Foo(2, 3).sum); Simulate getter in JavaScript by

valueOf()、toString()

基本上,所有JS数据类型都拥有valueOf和toString这两个方法,null除外.它们俩解决javascript值运算与显示的问题. JavaScript 的 valueOf() 方法 valueOf() 方法可返回 Boolean 对象的原始值. 用法booleanObject.valueOf(),返回值为booleanObject 的原始布尔值.如果调用该方法的对象不是 Boolean,则抛出异常 TypeError. var boo = new Boolean(false); con

Javascript中valueOf与toString区别

疑问: 在JS的数据类型中有两个方法 Object.prototype.valueOf 和 Object.prototype.toString,在实例到这两个的区别是什么? 我们进行如下的实例步骤: 案例1. var test={ age:20, toString:function(){return this.age-10;}, //重写 toString() valueOf:function(){return this.age+40;} //重写 valueOf() } 运行如下代码: ale

valueOf和toString的区别

基本上所有的JavaScript数据类型都有valueOf(),toString()方法,null除外,这两个方法解决了JavaScript值运算和显示的问题 valueOf()会把数据类型转换成原始类型,也就是说原来是什么类型,转换后还是什么类型,日期类型除外 toString()会把数据类型转换成string类型,也就是说不管原来是什么类型,转换后一律是string类型 这两个方法有意思的地方在于什么时候使用,总结如下: 1.valueOf()偏向于运算,toString()偏向于显示 2.

valueOf() 和 toString()

valueOf():如果存在任意原始值,返回最适合该对象类型的原始值. toString():将该对象的原始值以字符串形式返回. 这两个方法一般是交由JS去隐式调用,以满足不同的运算情况.  举个栗子:看图中(不要管那两个undefined),两种方法返回的true 颜色不同哦!因为toString()返回的是字符串,而valueOf()返回的是原始值. END valueOf() 和 toString()

String、String.valueOf、toString 它们三者的区别总结

今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下吧.用了这么长时间,才发现有这些的不同,也是挺惭愧的. 先说他们三的作用是什么吧:没什么特别的作用,就是让我们得到的对象或参数类型,按照要求转成字符串的形式. String:毫无疑问,这种就是强转形式,简单方便,效率高.java程序员可能看到效率高或许有些激动,但是它有他的不好,那就是局限性.在ja

valueOf() 和 toString() 的异同

总的来说,valueOf()返回的是一个“值”,而toString()返回的是一个字符串. 及时返回的结果是一样的,但是valueOf()就是要比toString()高一个档次.人家返回的数字都是蓝色的,你的却永远是灰色. 列一个无聊的表呢,大概是这样. 浏览器的输出呢,是这样:(上边是toString,下边是valueOf,依次输出了,对象,数组,函数,日期,布尔,字符串,数字) 但是你刷新一下呢,他就变成了这样: 代码: var obj = {name:"Tom"}; var ar

valueOf跟toString区别

1.用法如下:toString()方法:返回对象的字符串表示. 对象 操作 Array 将 Array 的元素转换为字符串.结果字符串由逗号分隔,且连接起来. Boolean 如果 Boolean 值是 true,则返回 “true”.否则,返回 “false”. Date 返回日期的文字表示法. Error 返回一个包含相关错误消息的字符串. Function 返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称: function function

Java 常用之String.valueOf、toString、(String)

在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能 常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等 字符串类型的转型在java中常用的方法有标题中的三种. 简单介绍: 1.toString,需要保证调用这个方法的类.方法.变量不为null,否则会报空指针. 2.String.valueOf.这个方法在使用的时候是有些特殊的.一般情况下,如果是确定类型的null传入,返回的是字符串"null