JavaScript整数导致NaN

Sno*_*irl 2 javascript variable-types

我有JavaScript,基本上如下所示

function a() {
    b(1);
}

function b(myNumber) {
    c(myNumber);
}

function c(myNumber) {
    var calculation = 5 * (myNumber - 1);
    alert(calculation);
}
Run Code Online (Sandbox Code Playgroud)

当我调用该函数时a(),警告框最终会显示"NaN".为什么会这样?我尝试过parseInt()在很多地方使用这个功能,但似乎没什么用.

编辑

完整代码(实际上是做什么而不是剥离的例子):

function updateTablePagination(tableId, rowsPerPageSelectId) {
    updateTablePagination(tableId, rowsPerPageSelectId, 1);
}

function updateTablePagination(tableId, rowsPerPageSelectId, pageNumber) {
    var table = document.getElementById(tableId);
    var rowsPerPageSelect = document.getElementById(rowsPerPageSelectId);
    var rowsPerPage = rowsPerPageSelect.options[rowsPerPageSelect.selectedIndex].text;

    updateTable(table, rowsPerPage, pageNumber);
    //updateTablePageLinks();
}

function updateTable(table, rowsPerPage, pageNumber) {
    var tableRows = table.getElementsByTagName("tr");
    var totalNumberOfRows = tableRows.length;

    var startRow = rowsPerPage * (pageNumber - 1);      
     var endRow = Math.min(startRow + rowsPerPage, totalNumberOfRows - 1);

    alert("Start: " + startRow + "\nEnd: " + endRow);
}
Run Code Online (Sandbox Code Playgroud)

选择框有一个onchange呼叫updateTablePagination('myTableId', 'rowsPerPage').ids都是正确的.

"开始"和"结束"都是NaN.

编辑2

或者,如果我这样做alert(pageNumber),它是未定义的.

即使这样说pageNumber是不明确的:

function updateTablePagination(tableId, rowsPerPageSelectId) {
    updateTablePagination(tableId, rowsPerPageSelectId, 1);
}

function updateTablePagination(tableId, rowsPerPageSelectId, pageNumber) {
    alert(pageNumber);
}
Run Code Online (Sandbox Code Playgroud)

Den*_*nis 6

你有两个函数叫updateTablePagination.Javascript不支持函数重载.摆脱第一个声明,因为它被第二个声明覆盖.您可以使用它||来定义参数的默认值.

function updateTablePagination(tableId, rowsPerPageSelectId, pageNumber) {
    pageNumber = pageNumber || 1; //Set a default value for pageNumber
    var table = document.getElementById(tableId);
    var rowsPerPageSelect = document.getElementById(rowsPerPageSelectId);
    var rowsPerPage = rowsPerPageSelect.options[rowsPerPageSelect.selectedIndex].text;

    updateTable(table, rowsPerPage, pageNumber);
    //updateTablePageLinks();
}


updateTablePagination(tableId, rowsPerPageSelectId) //Will call the function with pageNumber == 1
Run Code Online (Sandbox Code Playgroud)