Vimとボクと、ときどき、PHP

Vim好きなエンジニア(主にPHP開発)が不定期に技術情報やネタを書いていくブログです

Home » JavaScriptでstartsWith

JavaScriptでstartsWith

結論からどーんと書いてしまいますが、
「JavaScriptでstartsWithは(まだ)使わない方がいいよ」
というお話です。

Webアプリを開発し、ブラウザでテストを行うぞという場合は、有名なブラウザは一通りテストすることと思います。
具体的に列挙すると

  • Internet Explorer
  • Firefox
  • Chrome
  • Safari
  • Opera

あたりでしょうか。私は上から3つは必ずテストするようにしております。

複数のブラウザで動作させると、まず表示の微妙な違いに目がいきます。しかし目に見えればすぐ気付きますので、まだいい方。問題は目に見えない(もしくは一定の条件を満たさないと見えない)問題。特にJavaScriptの仕様の違いやHTML5への対応状況には困ってしまうことが多いです。

先日、ChromeとFirefoxではテストしたのですが、うっかりIEでテストするのを忘れてしまいました。そしたら運悪く、IEでバグが発覚。内容は

IEで画面が動かない

というもの。

調査したところ、Chrome/Firefoxでは問題なかったJavaScriptが、IEだとエラーになっていることが判明。「startsWithメソッドが無い」と言われています。数年前までずっとJavaを書いていたこともあり、JavaScriptを書く際にはどうしてもJavaの癖が出てしまうので、当然のようにJavaScriptにもstartsWithがあるものと思っていましたが、そうではないようです。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith

ChromeとFirefoxの新しめのバージョンなら実装されていますが、(2015/06/19現在では)IEはまだなんですね。

上記のページ内には、startsWithメソッドを使えるようにする方法も書いてくれてますが、そんな大がかりなことをする必要もない部分だったので、おとなしくindexOfに変更して解決しました。

Name of author

Name: よーすけ

Short Bio: 主にPHP開発をやってる社内PGです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です