Fork me on GitHub

JSLint Error Explanations

JSLint will hurt your feelings. It's time to make them better!


Use a named parameter

什么时候会产生这个错误?

当JSLint遇到尝试着用数字下标访问arguments对象的属性时,会抛出"Use a named parameter"错误。在下面这个例子中,我们将第一个函数参数赋值为x

为什么会产生这个错误?

这个错误是为了强调潜在的会造成速度缓慢和令人迷惑的代码片段。使用arguments对象是缓慢的。除非你在函数内访问它,很多JavaScript引擎事实上不会创建这个对象。在Chrome 30.0中的跑分显示,使用命名的形参效率会提高54%:

JSPerf results

除了性能上的问题,使用arguments对象而不是已命名的参数会破坏你的代码的可读性。(使用参数)会更容易理解你的函数要做什么,以及需要传递什么参数。解决这个问题,可以简单的给函数的形参列表中添加自己命名的参数:

记住,仍然有些场景可以使用arguments对象。JSHint只会在你想要尝试通过数字下标访问它的时候发出警告。正是因为你需要知道参数在列表里的位置,毫无疑问你肯定可以在函数签名中给出一个标示符。


comments powered by Disqus