Javascript 将函数应用于函数(难以解释)

Javascript 将函数应用于函数(难以解释),javascript,Javascript,首先,我想为这个不切实际的问题道歉 请查看以下代码: var dt = new Date(t*1000); var m = "0" + dt.getMinutes(); var m = "0" + dt.getMinutes(); m = m.substr(-2); 输出时,它可以根据t变量(也称unix时间)给出以下结果之一: 如您所见,如果时间过长,格式将被破坏。要解决这个问题,我们必须调用一个函数,只保留最后两个字符。为此,我们将使用以下代码: var dt = new Date(t*

首先,我想为这个不切实际的问题道歉

请查看以下代码:

var dt = new Date(t*1000);
var m = "0" + dt.getMinutes();
var m = "0" + dt.getMinutes();
m = m.substr(-2);
输出时,它可以根据
t
变量(也称unix时间)给出以下结果之一:

如您所见,如果时间过长,格式将被破坏。要解决这个问题,我们必须调用一个函数,只保留最后两个字符。为此,我们将使用以下代码:

var dt = new Date(t*1000);
var m = "0" + dt.getMinutes();
var m = "0" + dt.getMinutes();
m = m.substr(-2);
它可以输出:

m = 54 // 54 minutes
m = 3  // 03 minutes
好!!我们解决了这个问题,对吗?我认为连续两次设置变量是愚蠢的。我试过:

var m = "0" + dt.getMinutes().substr(-2);
但我得到了以下错误:

TypeError: dt.getMinutes(...).substr is not a function
有没有一种单行方法可以做到这一点?

返回一个整数,而不是字符串,因此不能对其调用
substr
。但是,通过在
“0”+dt.getMinutes()表达式周围添加括号,可以得到一个字符串值,并且可以调用
substr

var dt=新日期();
var m=(“0”+dt.getMinutes()).substr(-2);

控制台日志(m)我在这里试图做的是
m=m.functionOne().FunctionTwo()你应该学会如何触及问题的核心,并实际询问问题的实质。您不需要知道如何在一行中调用两个函数-稍后可能需要,但这与此无关。你为什么不简单地问一个更基本的问题“如何用前导零格式化一个数字?”(这里也已经回答了)
dt.getMinutes().toString().padStart(2,'0')
我知道如何用前导零格式化一个数字。我想知道如何使它成为一个一行程序,而不必设置变量两次。这里的答案让我明白了,我必须先将函数的输出转换成字符串,然后才能对变量执行与字符串相关的操作(比如只保留最后两个字符)