55314


以下のコードは文法的に正しいでしょうか？  
chromeで実行するとしっかり実行できますが、monacaで実行するとエラーになるので調べてみましたが、以下の文法がそもそも正しいのかがわかりませんでした。  
というより、ググった限りでは正しくなさそうでした。  
よろしくお願いいたします。

[code]

    <script>
      'use strict';
    
      class A {
          static i = 'iii';
      }
    
      console.log(A.i);
    
    
    </script>
[/code]


CC BY-SA 4.0
2019-05-28T07:03:37.773
55312
2019-05-28T09:04:15.263
34502
question
javascript
javascriptのstaticについて


`static`でプロパティ（メソッドではなく）を宣言する構文は、将来的にJavaScriptに追加される予定の構文です（[static public
fields](https://github.com/tc39/proposal-static-class-features/)）。ですから、
**現時点では正しい構文ではありませんが、将来的には正しい構文になります** 。

Chromeではこの新構文を先取りして利用可能にしているためすでに動作しますが、他のブラウザはまだ未対応のため動作しません（[参考：compat
table](https://kangax.github.io/compat-table/esnext/#test-
static_class_fields)）。

実際に確かめてはいませんが、monacaで実行した場合はWebViewがChrome相当の場合のみ動作するため、
**新しいAndroidなら動作するが古いAndroidやiOSでは動作しない** という挙動になると思われます。

これらの環境でも`static`プロパティ構文が動作するようにするためには、Babelなどを用いたトランスパイルが必要です。トランスパイルの方法についてはmonacaのドキュメント等を調べると良いと思います。


CC BY-SA 4.0
2019-05-28T08:55:24.017
55314
2019-05-28T09:04:15.263
2019-05-28T09:04:15.263
30079
30079
55312
answer