この記事は BRIGHT VIE Advent Calendar 2017 16日目の記事になります。
#はじめに
私が、IonicなどのiOSアプリやWebアプリを開発している時、
ブラウザはChromeを使い開発しています。
Chromeで動作検証をし、問題なさそう!と思ったタイミングで、
実機へ移すと「スクリプトエラーでてるやん・・・」みたいなことがたまにあります。
#ChromeとSafariのJSエンジンの違い
この違いによって、Mac上(Chrome)では上手く動いていたのに、
実機へもっていくとスクリプトエラーで動かない!といったケースが起こってしまいます。
■各ブラウザごとのJSエンジンの違い
Chrome:Chrome V8
Safari:JavaScriptCore
#Date型の書式解釈の違い
「そんな書き方だめでしょ!」という批判は、今回は無しでお願いしますw
以下の書き方は、ChromeもSafariもOKです。
var f = new Date("2017/02/03 14:00");
console.log(f);
//Chrome・Safari ◯
// → Fri Feb 03 2017 14:00:00 GMT+0900 (JST)
ですが、以下の書き方はSafariでは怒られます。
var f = new Date("2017-02-03 14:00");
console.log(f);
//Chrome ◯
// → Fri Feb 03 2017 14:00:00 GMT+0900 (JST)
//Safari ✕
// → Invalid Date
「ハイフン付きの日付書式なんて使っちゃだめだよ」と言われてしまいそうですが、
使ってしまったものは仕方ないので、
「以降注意していこう!」と、自分自身に気をつけながら日々成長です。
(そもそも、なんでこんな差異がエンジンごとにでてしまうんだ、、そっちを直してくれ!ともたまに思いますw)