我有一些带有默认值的函数,就像这样:
function f(a, b = 'something') {
//do stuff
}
这段代码本来没问题,但如果我试图使用在线相关应用程序压缩JS文件,则会出现错误:
错误:意外的令牌运算符“=”,预期标点符号“,”
据我所知,在Javascript中使用=
设置默认值是合法的,那为什么我会收到这个错误消息?
我必须在函数体中定义默认值吗?
我有一些带有默认值的函数,就像这样:
function f(a, b = 'something') {
//do stuff
}
错误:意外的令牌运算符“=”,预期标点符号“,”
据我所知,在Javascript中使用=
设置默认值是合法的,那为什么我会收到这个错误消息?
我必须在函数体中定义默认值吗?
在Javascript中,使用=
为函数参数设置默认值是ES6的一项特性,目前仅由Chrome 49和Firefox 15.0支持:
由于浏览器支持有限,目前很少(或根本没有)混淆器已经支持此功能。
您可以像这样设置默认参数:
function f(a, b) {
b = typeof b === 'undefined' ? 'something' : b;
//do stuff
}
您可以使用转译器(例如 Babel)将ES6代码转换为旧版浏览器和代码压缩工具所理解的内容。
pipe()
来链接它,从而实现代码压缩。gulp('src.js').pipe(babel()).pipe(minify());
function (a, b) {
b = b || 'default';
}
试试这个:
function someFunction(a,b){
a=(a=='bool condition here':a,'default value');//a is a optional parameter variable now with a default value
b=(b=='bool condition here':b,'default value');//b is a optional parameter variable now with a default value
}
(a != null)?a:'defaultVal'
.. - zion