我正在尝试使用其中的两个变量打印数组,但它会保持记录“未定义” 我做错了什么?
var firstNum = 1
var secondNum = 2
var list = []
var i;
function calculate(firstNum,secondNum) {
for( var i = firstNum; i <= secondNum; i++){
list.push(i);
}
console.log(list);
};
在表单标签中调用该函数:
<form name="myForm" id="eForm" onsubmit = "calculate()">
这是一个带有表单和js:http://jsbin.com/EcOtUJIx/1/
的JS Bin答案 0 :(得分:2)
根据您的评论和更新的问题,您从表单的内联事件处理程序调用该函数:
onsubmit = "calculate()"
您不会向函数传递任何参数,这意味着函数firstNum
和secondNum
都是undefined
。我认为你将它们与同名的全局变量混淆起来。
如果您更改了函数声明以删除参数:
function calculate() {
...然后当你引用firstNum
和secondNum
时,它会使用全局变量。 (或者您可以更改参数名称,但由于您实际上没有传递任何参数,因此删除它们更有意义。)
请注意,通常的做法是声明仅在函数 函数内使用的变量:
function calculate() {
var firstNum = 1;
var secondNum = 2;
var list = [];
for (var i = firstNum; i <= secondNum; i++) {
list.push(i);
}
console.log(list);
};
(请注意,它具有相同的输出:http://jsfiddle.net/5WBB5/1/)
如果您需要使用该函数来使用不同的函数,那么您可以在代码中声明参数,但在调用函数时传递值:
function calculate(firstNum, secondNum) {
// your code here
}
calculate(1, 2);
答案 1 :(得分:0)
在定义后调用函数:
calculate(firstNum, secondNum); // works as calculate(1, 2);
然后它将在控制台中显示数组