在JavaScript本地函数中,变量没有获得价值

GRT*_*RTZ 1 javascript jquery

嗨,我试着做一些计算如下.

权重值应从分数中减去其值.但是当我这样做时,我将"未定义"作为score变量输出.是什么原因?我是否正确处理了变量声明?

var score = 10;

var scoresFunc = function (weight) {
    console.log(score);
    var finalScore = score - weight;
    score = score - finalScore;
    var scoreForStartingDate = $('#scoreForStartingDate').val();
    var scoreForDuration = $('#scoreForDuration').val();
    var scoreForProjects = $('#scoreForProjects').val();

    var score = score - parseInt(weight);
    var a = '';
    for (i = 1; scores >= i; i++) {
        a += "<option value='" + i + "'>" + i + "</option>";
    }
    return a;
};
Run Code Online (Sandbox Code Playgroud)

Tra*_*s J 5

你看到为console.log(得分)记录未定义的原因是因为称为变量提升MDN的东西.

var score = 10;
var scoresFunc = function (weight) {
    console.log(score);
    var score = score - weight;
};
Run Code Online (Sandbox Code Playgroud)

这是所示功能的浓缩版本.但是,由于吊装,实际上就是这样

var score = 10;
var scoresFunc = function (weight) {
    var score;
    console.log(score);
    score = score - weight;
};
Run Code Online (Sandbox Code Playgroud)

哪个应该有希望清除你记录的原因undefined.