关于Math.max 参数问题

var arr=[1,2,8,9,55,7];
var max=Math.max.apply(Math,arr);
var max1=Math.max(arr);
alert(max); //55
alert(max1); //NaN

  //但是我把arr数组改成 arr=[1]
  //alert(max)  //1
  //alert(max1) //1
  //这两个值都是1了

2个回答

在 js 数组和对象是引用类型 ,
var arr = [1,2] ; //创建一个新数组 [1,2]
var arr1 = arr; //并没有创建数组 ,arr1 和arr 共用同一个数组 ,修改任意一个,另一个也会改变(实际就是一个数组两个名字,)

 var max=Math.max.apply(Math,arr);
var max1=Math.max(arr);
=======
理解apply的含义,apply后,Math的max参数就变成了arr里面的内容,而不是arr本身了
Math.max(arr);这里是因为参数不对,max函数的参数不是arr
qq_39081958
qq_39081958 arr也是数组啊,max里面不是要数组吗?
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问