JS:嵌套函数与连续函数之间的区别

时间:2018-08-26 16:51:31

标签: javascript

一次调用一个函数/方法之间有什么区别(如果有):

function nextInLine(arr, item) {
  arr.push(item);
  return arr.shift();
}

相对于另一个这样做:

function nextInLine(arr, item) {
 return arr.shift(arr.push(item));
}

我的猜测是,这将对复杂功能产生更多的相关影响,但是,当学习基础知识时,两者之间在性能,最佳实践等方面是否存在任何差异?

编辑:对,我应该澄清这是来自freeCodeCamp的this exercise,并且您需要将数字添加到数组的末尾,然后删除第一个数组的元素,因此系统使用诸如

之类的调用来测试功能

nextInLine([5,6,7,8,9], 1) should return 5

这两件事都通过了测试,我想知道它们之间的差异/最佳实践

1 个答案:

答案 0 :(得分:0)

即使将当前值对该函数不做任何事,将一个任意值传递给另一个函数也毫无意义。

在当前的ECMAScript规范中,shift运算符没有任何参数。因此,传递给shift的所有内容都将被忽略。

在当前规范中,两个代码段都将以相同的顺序执行完全相同的操作,并且很可能没有性能差异。

但是您绝对应该将任何内容传递给shift。一方面,每个阅读您的代码的人都会想知道为什么将参数传递给shift,并且首先必须检查标准是否已更改为具有接受参数的shift函数。

如果该标准由于某种原因引入了一个接受参数的shift版本,那么您的代码很可能会开始失败。