javascript - 为什么 Javascript Array.sort 函数在比较函数不正确时不会抛出错误

标签 javascript

为什么 Javascript Array.sort 函数在将不正确的比较函数(即参数数量!= 2 的函数)传递给它进行排序时不会抛出错误。根据我的理解,排序函数有可选的compareFunction函数。该函数需要 2 个参数。

示例 1:具有 1 个参数的compareFunction

var ar = [1,4,2,3];
console.log(ar.sort(function(a){return 2-a;}));

控制台输出

VM239:2 [4, 2, 3, 1]

示例2:具有 2 个参数的compareFunction

var ar = [1,4,2,3];
console.log(ar.sort(function(a,b,c){return a-b-c;}));

控制台输出

VM408:2 [1, 4, 2, 3]

最佳答案

您可以使用任意数量的参数重载函数,因为参数来自函数的“参数数组对象”。所有额外的参数都会被忽略,因此您的排序函数不会抛出错误。 Javascript 在处理这些事情时相当灵活。 :)

关于javascript - 为什么 Javascript Array.sort 函数在比较函数不正确时不会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31964709/

相关文章:

javascript - 以编程方式更改元素值 javascript

javascript - 基于来自 Dom 元素的 CSS 路径模拟点击

java - 更改src iframe具有跨域功能

javascript - ffmpeg 退出,代码为 1 : Error reinitializing filters! 无法将帧注入(inject)过滤器网络:参数无效

javascript - 如何在Javascript中的对象内创建对象

javascript - 我如何使用当前的网络技术生成六 Angular 形交互式 map

javascript - Bootstrap 3 - 最大化窗口时导航对齐未正确显示

javascript - React Native 热重载导致升级后完全重载

Javascript 函数将运行并在 1 秒后自动删除

javascript - 以对象的字段作为参数获取 javascript 对象的字段名称