+new Date()是一个东西;
+相当于.valueOf();
.getTime()这个也是得到毫秒数
//4个结果一样返回当前时间的毫秒数
alert(+new Date());
alert(+new Date);
var s=new Date();
alert(s.valueOf());
alert(s.getTime());
附送js获取时间的各种用法:
http://www.cnblogs.com/0banana0/archive/2011/05/25/2056614.html
var myDate = new Date();
var a=myDate.toLocaleString( );
2011-11-07 18:13:56
顺便说下valueOf的另一个用法:
valueOf() 方法可返回 Boolean 对象的原始值。
如果调用该方法的对象不是 Boolean,则抛出异常 TypeError。
var boo = new Boolean(false);
document.write(boo.valueOf());
其他用法:http://www.google.com.hk/search?sitesearch=w3school.com.cn&as_q=valueOf
另外是对+new Date()运行机制的推测(菜鸟拙见,如有不对之处还请指点一二):
//同样是获得当前时间毫秒数,类型为number
console.log(typeof +new Date);
//+是一元运算符,相当于.valueOf(),而Date对象本身也有valueOf()
console.log(+new Date().constructor.name); //通过构造发现为NaN
console.log(NaN.constructor.name); //而NaN的构造肯定是Number
console.log(typeof NaN); //NaN的类型为number
console.log(Number()); //ECMAScript中Number对象中也是有valueOf()方法的
//因此推测new Date后将Date对象通过+一元运算转换成了NaN而,通过Number的valueOf()方法后再得到number值
console.log(new Date().valueOf()); //这是Date对象自身的方法
//new Date后调用Date对象自身的方法getTime()得到number值
console.log((new Date).getTime());
所以 (new Date).getTime() 的效率比 +new Date() 更高。
另PS:Math 和 Error 对象都没有 valueOf 方法。
浙公网安备 33010602011771号