首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有默认值问题的Minify javascript

带有默认值问题的Minify javascript
EN

Stack Overflow用户
提问于 2016-03-27 13:39:04
回答 4查看 4.6K关注 0票数 16

我的函数具有默认值,如下所示:

代码语言:javascript
复制
function f(a, b = 'something') {
    //do stuff
}

这很好,但如果我试图使用在线相关应用程序缩小JS文件,就会发生以下错误:

错误:意外令牌运算符'=',预期的朋c ',‘

据我所知,使用=设置Javascript的默认值是合法的,那么为什么我会收到这个错误呢?

是否必须在函数体中定义默认值?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-27 13:53:42

使用=为Javascript中的函数参数设置默认值是一个ES6特性,目前只有Chrome49和Firefox15.0支持:

由于浏览器支持有限,很少(如果有的话)小型机已经支持此功能。

备选案文1:

您可以设置如下默认参数:

代码语言:javascript
复制
function f(a, b) {
    b = typeof b  === 'undefined' ? 'something' : b;
    //do stuff
}

备选案文2:

您可以使用像巴贝尔这样的转发程序来将ES6代码转换为旧的浏览器&小型浏览器所能理解的内容。

票数 18
EN

Stack Overflow用户

发布于 2016-03-27 13:51:36

默认参数是EcmaScript的一个新特性,它与ES6 (正式名称为ES2015)一起出现。

大多数小型机都不是最新的。不过,您可以在大部分的# uglifyjs的和谐分支中使用ES6。

尽管如此,由于它们的支持仍然有限,默认参数在浏览器中实际上是不可用的,除非

  • 你不关心IE用户
  • 或者使用像巴贝尔这样的转换程序,将代码从ES6转换为ES5

如果您还没有准备好使用这些解决方案之一,请小心使用所有MDN页面的https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/default_parameters#Browser_compatibility

票数 2
EN

Stack Overflow用户

发布于 2016-03-27 14:00:56

你怎么缩小?如果您使用类似于大口吞下的东西,您可以使用pipe()链接它,例如:

代码语言:javascript
复制
gulp('src.js').pipe(babel()).pipe(minify());

另一方面,您可以使用旧风格的“默认值”:

代码语言:javascript
复制
function (a, b) {
    b = b || 'default';
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36247969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档