一次调用一个函数/方法之间有什么区别(如果有):
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
这两件事都通过了测试,我想知道它们之间的差异/最佳实践
答案 0 :(得分:0)
即使将当前值对该函数不做任何事,将一个任意值传递给另一个函数也毫无意义。
在当前的ECMAScript规范中,shift
运算符没有任何参数。因此,传递给shift
的所有内容都将被忽略。
在当前规范中,两个代码段都将以相同的顺序执行完全相同的操作,并且很可能没有性能差异。
但是您绝对应该将任何内容传递给shift
。一方面,每个阅读您的代码的人都会想知道为什么将参数传递给shift
,并且首先必须检查标准是否已更改为具有接受参数的shift
函数。
如果该标准由于某种原因引入了一个接受参数的shift
版本,那么您的代码很可能会开始失败。