Javascript Angular JS Android应用程序默认参数的意外标记

Javascript Angular JS Android应用程序默认参数的意外标记,javascript,angularjs,cordova,debugging,mobile,Javascript,Angularjs,Cordova,Debugging,Mobile,当运行我基于angular/phonegap构建的应用程序时,我得到以下错误 未捕获的语法错误:意外标记= 错误是由为参数提供的默认值引起的。但为什么会这样呢?它在一些设备上工作得很好,但在其他设备上会抛出此错误。 代码如下: .factory('foo' , function(){ return { test : function(id = 0){ console.log(id); } } }) 以下是解决方案: .factory('foo' , functi

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

未捕获的语法错误:意外标记=

错误是由为参数提供的默认值引起的。但为什么会这样呢?它在一些设备上工作得很好,但在其他设备上会抛出此错误。 代码如下:

.factory('foo' , function(){
  return {
   test : function(id = 0){
     console.log(id);
   }
  }
 })
以下是解决方案:

.factory('foo' , function(){
  return {
   test : function(id){
    id  = ( id !== undefined ) ? id : 0;
    console.log(id);
   }
  }
})
是一个全新的ECMAScript功能,仅在ECMAScript 2015中添加

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

只有最新的浏览器才能使用ECMAScript 2015特性解释和编译您的代码


为了解决这个问题,如果您想使用最新的规格,而不必担心在哪些浏览器上可以使用哪些特性,请考虑使用诸如在构建管道中的转发器。

您的解决方案与评估FalSy的值有关,请阅读此答案以获取更多细节。