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.
或者,如果我这样做alert(pageNumber),它是未定义的.
即使这样说pageNumber是不明确的:
function updateTablePagination(tableId, rowsPerPageSelectId) {
updateTablePagination(tableId, rowsPerPageSelectId, 1);
}
function updateTablePagination(tableId, rowsPerPageSelectId, pageNumber) {
alert(pageNumber);
}
Run Code Online (Sandbox Code Playgroud)
你有两个函数叫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)
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |