在Node.js应用程序中,“无法读取属性”的原因是“未定义的”

我试图通过join不同的元素来形成一个URL。 我正进入(状态

TypeError:无法读取未定义的属性'replace'。

当我运行下面的代码。 任何build议,非常感谢!

... function joinUrlElements() { "use strict"; var re1 = new RegExp('^\\/|\\/$', 'g'), elts = Array.prototype.slice.call(arguments); return elts.map(function (element) { return element.replace(re1, ""); }).join('/'); } .... 

这意味着你的elts有一个项目,其值设置为undefined

也可以用ES6使用rest参数 ,这个arguments在你的情况下会使用argumentsvariables。

看一个例子

 function joinUrlElements(...args) { var re1 = new RegExp('^\\/|\\/$', 'g'); return args.map(function (element) { return element.replace(re1, ""); }).join('/'); } console.log(joinUrlElements('first', 'second', 'third')); 

当你调用这个函数的时候,其中一个参数会导致数组的一个元素为“undefined”,当map试图对这个元素进行操作时,会抛出错误。