使用默认值问题缩小 javascript
Minify javascript with default value issue
我有这样一个默认值的函数:
function f(a, b = 'something') {
//do stuff
}
这工作得很好,但如果我尝试使用在线相关应用程序缩小我的 JS 文件,则会发生错误:
Error: Unexpected token operator '=', expected punc ','
据我所知,使用 =
设置 default value in Javascript 是合法的,那么为什么我会收到此错误?
我必须在函数体中定义默认值吗?
Default parameters are a new features of EcmaScript, coming with ES6 (officially known as ES2015).
大多数缩小器都不是最新的。不过,您可以对大部分 ES6 使用 #harmony branch of uglifyjs。
话虽这么说,因为它们的支持仍然有限,默认参数在浏览器中并不真正可用,除非
- 你不关心 IE 用户
- 或者你使用像Babel这样的转译器将代码从 ES6 转换为 ES5
如果您还没有准备好采用其中一种解决方案,请注意所有 MDN 页面的 "Browser Compatibility"。
使用=
为Javascript中的函数参数设置一个默认的默认值是一个ES6特性,目前只有Chrome49和Firefox 15.0支持:
由于浏览器支持有限,很少(如果有的话)缩小器已经支持此功能。
备选方案 1:
您可以像这样设置默认参数:
function f(a, b) {
b = typeof b === 'undefined' ? 'something' : b;
//do stuff
}
备选方案 2:
您可以使用 Babel 之类的转译器将 ES6 代码转换为旧版浏览器和压缩器可以理解的代码。
试试这个:
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
}
如何缩小?如果你使用像 gulp 这样的东西,你可以用 pipe()
链接它,比如:
gulp('src.js').pipe(babel()).pipe(minify());
另一方面,您可以使用旧式 "defaults":
function (a, b) {
b = b || 'default';
}
我有这样一个默认值的函数:
function f(a, b = 'something') {
//do stuff
}
这工作得很好,但如果我尝试使用在线相关应用程序缩小我的 JS 文件,则会发生错误:
Error: Unexpected token operator '=', expected punc ','
据我所知,使用 =
设置 default value in Javascript 是合法的,那么为什么我会收到此错误?
我必须在函数体中定义默认值吗?
Default parameters are a new features of EcmaScript, coming with ES6 (officially known as ES2015).
大多数缩小器都不是最新的。不过,您可以对大部分 ES6 使用 #harmony branch of uglifyjs。
话虽这么说,因为它们的支持仍然有限,默认参数在浏览器中并不真正可用,除非
- 你不关心 IE 用户
- 或者你使用像Babel这样的转译器将代码从 ES6 转换为 ES5
如果您还没有准备好采用其中一种解决方案,请注意所有 MDN 页面的 "Browser Compatibility"。
使用=
为Javascript中的函数参数设置一个默认的默认值是一个ES6特性,目前只有Chrome49和Firefox 15.0支持:
由于浏览器支持有限,很少(如果有的话)缩小器已经支持此功能。
备选方案 1:
您可以像这样设置默认参数:
function f(a, b) {
b = typeof b === 'undefined' ? 'something' : b;
//do stuff
}
备选方案 2:
您可以使用 Babel 之类的转译器将 ES6 代码转换为旧版浏览器和压缩器可以理解的代码。
试试这个:
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
}
如何缩小?如果你使用像 gulp 这样的东西,你可以用 pipe()
链接它,比如:
gulp('src.js').pipe(babel()).pipe(minify());
另一方面,您可以使用旧式 "defaults":
function (a, b) {
b = b || 'default';
}