Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将此代码缩减为一行?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何将此代码缩减为一行?

Javascript 如何将此代码缩减为一行?,javascript,node.js,express,Javascript,Node.js,Express,我对javascript、node.js和express非常陌生。我的问题是,如何重构以下代码,使其成为函数中的一行 exports.about = function(req, res){ var mytime = new Date(); res.render('about', {title: 'about page', time: mytime.toLocaleDateString() }); }; 换句话说,有没有一种方法可以压缩变量mytime=newdate();和time:myt

我对javascript、node.js和express非常陌生。我的问题是,如何重构以下代码,使其成为函数中的一行

exports.about = function(req, res){
 var mytime = new Date();
 res.render('about', {title: 'about page', time: mytime.toLocaleDateString() });
};

换句话说,有没有一种方法可以压缩变量mytime=newdate();和time:mytime.toLocalDateString()合并到一个语句中

你没有。可读性胜过简洁性。让机器来缩小尺寸


您可以将
mytime.toLocaleDateString()
写成
(新日期()).toLocaleDateString()
,但我不推荐这样做

我喜欢的款式:

exports.about = function(req, res){
  var mytime = new Date();
  res.render('about', {
    title: 'about page',
    time: mytime.toLocaleDateString()
  });
};
看:你可以,但真的有必要吗?这是很好的和可读的方式,你这样做

但如果你真的真的想,这就是:

exports.about = function(req, res){
 res.render('about', {title: 'about page', time: new Date().toLocaleDateString() });
};
这看起来有点奇怪,但是
new Date()
部分优先,所以您甚至不需要在它周围使用参数(例如,您不需要
时间:(new Date()).toLocaleDateString()
)。如果你愿意,你可以拥有它们,但它们不是必需的。

一行

exports.about = function(req, res){ res.render('about', {title: 'about page', time: new Date().toLocaleDateString() }); };
但这相当愚蠢。您的原始代码没有问题。

您可以这样做

exports.about = function(req, res){
  res.render('about', {title: 'about page', time: new Date().toLocaleDateString() });
};

但仅此而已。我同意Frits van Campen的观点。

缩短这段代码不会使它变得更好。我个人会把它放大一点,就像这样:

exports.about = function (req, res) {
    var mytime = new Date();
    res.render('about', {
        title: 'about page',
        time: mytime.toLocaleDateString()
    });
};
  • 我在
    函数
    后面添加了一个空格,因为这正是JSLint想要的
  • 我在
    {
    前面添加了一个空格,因为这样可以使它更具可读性
  • 我将所有对象属性放在不同的行上,这样我就不必整天水平滚动(而且现在我可以在每个属性的末尾添加注释,耶!)
  • 最后,我将空格缩进替换为制表符,因为这样可以使所有内容完全对齐,而只需按一次键即可删除或覆盖它们(如果插入符号位于第行的开头,则4个空格需要按4次键才能移动到代码中,而单个制表符只需要按一次键)

我的观点是,最好删除mytime变量,因为您只是获取当前系统时间,而new Date()使意图非常清楚

exports.about = function (req, res) {
    res.render('about', {
        title: 'about page',
        time: new Date().toLocaleDateString()
    });
};

这里最好的方法是:
new Date().toLocaleDateString()
。大小不重要-可读性是。这是一种你想尽快摆脱的思维定势-相信我。你可以使用
exports.about=function(req,res){var mytime=new Date();res.render('about',{title:'about page',time:mytime.toLocaleDateString());};
但这没有什么意义。VisioN有我在这里寻找的答案。谢谢!!好的,我明白了,我可能会保持原样。但这实际上是不可能的,还是不推荐?不需要额外的括号。是的,我需要括号;)新的可能也不需要。@jstevens13“不可能”这是坏程序员常说的一句话。没有什么是不可能的,这样做只是一件愚蠢的事情。@FritsvanCampen
new
在这里至关重要。