关于javascript:Angular JS Android app默认参数的意外标记

Angular JS Android app Unexpected token for default parameter

当运行基于Angular/PhoneGap构建的应用程序时,我会得到以下错误

Uncaught SyntaxError: Unexpected token =

错误是由为参数提供的默认值引起的。但为什么会这样?它在一些设备上运行良好,并将此错误抛给其他设备。代码如下:

1
2
3
4
5
6
7
.factory('foo' , function(){
  return {
   test : function(id = 0){
     console.log(id);
   }
  }
 })

解决方案如下:

1
2
3
4
5
6
7
8
.factory('foo' , function(){
  return {
   test : function(id){
    id  = ( id !== undefined ) ? id : 0;
    console.log(id);
   }
  }
})


默认参数是一个全新的ecmascript功能,它只添加在ecmascript 2015中。

它在某些设备上工作而不是其他设备上工作的原因在于它们可能有不同的浏览器,或者同一浏览器的不同版本。

只有最新的浏览器才能使用EcmaScript 2015功能解释和编译您的代码。

为了解决这个问题,如果您想使用最新的规范而不必担心检查哪些浏览器上可用的特性,可以考虑在构建管道中使用蒸腾器(如Babel)。