1、Math.max()函数只能传入一组参数来求最大值,所以如果是要用于求一个数组中的最大值时,可以用Math.max.apply(Math,array),把this值指向Math对象,则第二个参数可以传入任意数组。
2、当给Math.max()或Math.min()函数传参时,若参数中有非数值的项,则会返回NaN。
扩展运算替代数组的apply方法
由于扩展运算符可以展开数组,所以不再需要apply
方法,将数组转为函数的参数了。
// ES5的写法 function f(x, y, z) { // ... } var args = [0, 1, 2]; f.apply(null, args); // ES6的写法 function f(x, y, z) { // ... } var args = [0, 1, 2]; f(...args);
下面是扩展运算符取代apply
方法的一个实际的例子,应用Math.max
方法,简化求出一个数组最大元素的写法。
// ES5的写法 Math.max.apply(null, [14, 3, 77]) 和
Math.max.apply(Math, [14, 3, 77]) 一样// ES6的写法Math.max(...[14, 3, 77 ]) // 等同于Math.max(14, 3, 77);