当我将变量传递给函数并在[duplicate]中对其进行修改时,变量不会更改

问题描述 投票:-4回答:1

如果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);时,它仍返回先前的值。为什么会这样?

javascript pass-by-reference
1个回答
-1
投票

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

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

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

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));

-2
投票

这应该起作用:

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) {
    return (x < 10) ? '0' + x : x;
}

console.log(check(hour));
© www.soinside.com 2019 - 2024. All rights reserved.