new Date()的数据类型的问题
function getServerNow(){ return new Date(new Date() + svrMinusLocal); }
svrMinusLocal是服务器时间减本地时间的时间差,这代码有什么问题?
console.log(new Date() + 1); // 这里的new Date()会返回字符串与"1"连接起来 console.log(new Date() - 1); // 这里的new Date()会返回数字与数字1相减得到一个数字 // 个人猜测 自动转换类型中, toString 比 valueOf 优先?于是做了如下实验 var autoType = { toString: function(){ return 'a'; }, valueOf: function(){ return 1; } } console.log(autoType + 1); // 2 console.log(autoType + 's'); // 1s console.log(autoType - '1'); // 0 // 证明上面的猜测是错的,呃 // 那只能死记了
作者:阿良
出处:http://www.cnblogs.com/arliang
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议
进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。