ValueOf()和toString()
Posted =DLSS=webZT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于ValueOf()和toString()的主要内容,如果未能解决你的问题,请参考以下文章