当我将变量传递给函数并在内部进行修改时,变量不变

我希望check函数在"0"之下,将hour附加到10

var date = new Date();
var day = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear();
var hour = date.getHours();
var minutes = date.getMinutes();

function check(x) {
  if (x < 10) {
    x = '0' + x;
  }
};
check(hour);
console.log(hour);

但是当我检查console.log(hour);时,它仍然返回先前的值。为什么会这样?

zyz1225 回答:当我将变量传递给函数并在内部进行修改时,变量不变

您需要返回值,并且需要从函数中获取值以进行输出或赋值。

function check(x) {
    if (x < 10) {
        return '0' + x;
    }
    return x;
}

在这种情况下,我将函数的名称更改为getFormatted并使用更抽象的方法。

function getFormatted(value,size = 2) {
    return value.toString().padStart(size,0);
}

var date = new Date();
var day = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear();
var hour = date.getHours();
var minutes = date.getMinutes();

console.log(getFormatted(hour));

本文链接:https://www.f2er.com/3087195.html

大家都在问