首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在这个Javascript函数中,为什么alert(multi)会报警值'3‘

在这个Javascript函数中,为什么alert(multi)会报警值'3‘
EN

Stack Overflow用户
提问于 2011-06-10 02:53:41
回答 3查看 135关注 0票数 0

在代码块底部调用multiMax()时,我们传入了4个参数。我明白了其余的逻辑是如何实现的,我只是不明白为什么alert(multi)等于'3';

http://jsfiddle.net/captainill/AjEPV/

代码语言:javascript
复制
function multiMax(multi){
  alert(multi);
  // Make an array of all but the first argument 
  var allButFirst = Array().slice.call( arguments, 1 ); 

  // Find the largest number in that array of arguments 
  var largestAllButFirst = Math.max.apply( Math, allButFirst );

  // Return the multiplied result 
  return multi * largestAllButFirst; 
} 
alert( multiMax(3, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );

我一直在看这些优秀的小教程:http://ejohn.org/apps/learn/#47

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-10 02:58:30

alert(multi)显示"3“,因为multi是第一个参数,3是传递给函数的第一个值。

票数 2
EN

Stack Overflow用户

发布于 2011-06-10 02:58:26

alert(multi)显示"3“,因为您将3作为第一个值传递给multiMax函数。

替换此行。

代码语言:javascript
复制
alert( multiMax(3, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );

使用

代码语言:javascript
复制
alert( multiMax(4, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );

结果将是4,请注意两行之间的差异。

票数 2
EN

Stack Overflow用户

发布于 2011-06-10 02:58:14

ASSERTALERT不是一回事。

我不认为alert调用是真正的问题所在。alert只打印/显示第一个值->在本例中,alert( multimax(3, 1,2,3) == 9, "Whatever")的第一个参数是multimax(3,1,2,3)==9,正如我们所看到的,它是true。这就是为什么你得到的是true,而不是"3*3 == 9“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6297770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档