grunt-contrib-uglify在使用函数参数与默认值时抛出错误
我使用Grunt 1.0.1与grunt-contrib-uglify 2.0.0来uglify我项目的连接.js文件。 这一直工作得很好,直到今天,我引入了一个带有默认值的函数参数的JavaScript函数。
现在Grunt任务导致这个错误消息:
Running "uglify:app" (uglify) task JS_Parse_Error { message: 'SyntaxError: Unexpected token operator «=», expected punc «,»', filename: 'app.js',
与此任务相呼应的app.js行是:
function addNumbers(a, b=1){ console.log(a + b); }
行中的确切列是b=1
地方。
如果我删除默认值,一切正常工作再次。
为什么grunt-contrib-uglify在这里抱怨? 我怎样才能解决这个问题?
引用错误消息,显然你不使用ES6。 您为b
设置默认值的方式仅适用于ES6。
以下是您可以设置b
的默认值
function addNumbers(a, b) { b = b || 1; console.log(a + b); }
如果你也想接受b
的值为0
,那么你可以检查b
是否是undefined
, ||
不是将b
的默认值设置为1
。
function addNumbers(a, b) { b = (b === undefined || typeof b !== 'number') ? 1 : b; console.log(a + b); }