在我看来,我遇到了一些奇怪的行为。我想我不明白发生了什么,所以如果有人能帮我这个......我会很高兴的。
function dateString1(date) {
return (
('0' + date.getDate()).slice(-2) + '/' +
('0' + (date.getMonth()+1)).slice(-2) + '/' +
date.getFullYear()
);
}
function dateString2(date) {
return
('0' + date.getDate()).slice(-2) + '/' +
('0' + (date.getMonth()+1)).slice(-2) + '/' +
date.getFullYear()
;
}
因此,dateString1
将返回我正在寻找的字符串,但dateString2
将返回undefined
。在Chrome和IE8上查看。
发生了什么事?
由于
答案 0 :(得分:10)
出于这个原因,将任何东西放在JS的新行上都是一个愚蠢的想法。自动分号插入会破坏您的代码,return;
是JS引擎将如何解释您的代码(这本身就是一个有效的语句)。这样说:
function dateString2(date) {
return ('0' + date.getDate()).slice(-2) + '/' +
('0' + (date.getMonth()+1)).slice(-2) + '/' +
date.getFullYear();
}
远离这样的事情:
if (something)
{
// logic
}
始终使用这种风格:
if (something) {
// logic
}