之间的确切区别是什么:
<p id="test"></p>
<script>
function findMax() {
var i;
var max = -Infinity;
for(i=0;i<arguments.length;i++) {
if(arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
document.getElementById('test').innerHTML = findMax(32, 133, 83, 163);
</script>
和
<p id="test"></p>
<script>
function findMax() {
var i = 0;
var max = -Infinity;
for(; i < arguments.length ; i++) {
if(arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
document.getElementById('test').innerHTML = findMax(32, 133, 83, 163);
</script>
也许我错过了一些课程但是第一个输出163,应该是,而第二个输出0.控制台说
SyntaxError:不在函数中返回
return max;
为什么第二个返回最低值,而第一个返回最高值?
答案 0 :(得分:3)
而第二个输出0。
您没有将我初始化为0
。
这意味着我未定义,undefined + 1
是NaN
。
SyntaxError:不在函数中返回
你在for循环之后错过了大括号,所以return语句超出了函数定义
function findMax() {
var i;
var max = -Infinity;
for(i = 0; i < arguments.length ; i++)
{//this was missed
if(arguments[i] > max)
{
max = arguments[i];
}
}
return max;
}
答案 1 :(得分:1)
对于第二个,您忘记了左括号{
和初始值i=0
您也可以使用Math.max()
答案 2 :(得分:1)
第二,你错过了{
,试试:
function findMax() {
var i;
var max = -Infinity;
for(; i < arguments.length ; i++) {
if(arguments[i] > max) {
max = arguments[i];
}
}
return max;
}