《JS权威指南学习总结--toString()和valueOf()方法》
方法要点:
一.toString()方法
1.主要用于Array、Boolean、Date、Error、Function、Number等对象转化为字符串形式。
数组类的toSting()方法将每个数组元素转换为一个字符串,并在元素之间添加逗号后合并成结果字符串。
函数类的toString()方法返回这个函数的实现定义的表示方法。实际上实现方式通常是将用户定义的函数转换为js源代码字符串
日期类的toString()方法返回一个可读的日期和字符串。
RegExp类的toString()方法将RegExp对象转换为表示正则表达式直接量的字符串。
2.
//在当前页面内追加换行标签和指定的HTML内容
function log( html ){
console.log(html);
};
//数组
var array = ["CodePlayer", true, 12, -5];
log( array.toString() ); // CodePlayer,true,12,-5
// 日期
var date = new Date(2013, 7, 18, 23, 11, 59, 230);
log( date.toString() ); // Sun Aug 18 2013 23:11:59 GMT+0800 (中国标准时间)
// 日期2
var date2 = new Date(2016, 7, 18, 23, 11, 59, 230);
log( date2.toString() ); // Fri Aug 18 201623:11:59 GMT+0800 (中国标准时间)
// 数字
var num = 15.26540;
log( num.toString() ); // 15.2654
// 布尔
var bool = true;
log( bool.toString() ); // true
// Object
var obj = {name: "张三", age: 18};
log( obj.toString() ); // [object Object]
// HTML DOM 节点
var eles = document.getElementsByTagName("body");
log( eles.toString() ); // [object NodeList]
二.valueof()方法
1.这个方法的任务并没有详细的定义:如果存在任意原始值,它就默认将对象转换为表示它的原始值。
2.对象是复合值,而且大多数对象无法真正表示为一个原始值,因此默认的valueOf()方法简单地返回对象本身,而不是返回一个原始值。
3.数组、函数和正则表达式简单地继承了这个默认方法,调用这些类型的实例的valueOf()方法只是简单返回这个对象本身。
4.日期类定义的valueOf()方法会返回它的一个内部表示:1970年1月1日以来的毫秒数。
eg:
var d = new Date(2010,0,1); //2010年1月1日
d.valueOf(); //1262332800000