Safari 10.0 から ECMAScript 6 (ES 6) が使えるようになりました
ES 6 がサポートされました。
iOS 10 / macOS Sierra に搭載される Safari 10 から ES 6 (ECMAScript 6) が完全にサポートされました。 早速見てみましょう。
ソースはこちらです。 Arrow function / Classes / String interpolation を使っています。iOS 9でもサポートされないのはArrow functionですので、iOS 9 では僕の年齢は表示されません。
<!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <script> <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <script> var write = (message) => { document.write(message); } (function () { "use strict"; class Person { constructor(name, age) { this.name = name; this.age = age; } getName() { return this.name; } getAge() { return this.age; } incrementAge(){ this.age += 1; } } var person = new Person('Takeshi', 39); person.incrementAge(); write(`${person.getName()}は来年${person.getAge()}才!?<br>`); write(window.navigator.userAgent); }()); </script> </body> </html> </script> </body> </html>
結果
iOS 10 Safari では表示される
iOS 9 Safari では表示されない
Android 5.1 Chrome では表示される
まとめ
素の ES 6 が動く環境が普及するのはモバイル環境では iOS 10 の普及とAndorid の標準ブラウザ搭載機の撲滅がキーになりそうです。そんなに遠くない未来、あと数年で ES 6 の世界になるんでしょうね。