技術

[JavaScript]IEのif文の判定がchromeと違う?

投稿日:

こんにちは、コーテッグのこやまです。

今持っている案件で、IE対応を進めているのですが、
css、js共に結構調整が必要な点が出てきました。

工程的にIE対応がはあまり考慮されていないのですが必要なので、
ピンチ気味でもありますが、IE検証用の環境を作って進めています。

それでもこの前、結構ハマってしまうことがありました。
入って欲しいif分に全然入ってくれないというものです。

条件がtrueのはずなのにif文の処理がされない?

isHogeとisFugaという真偽値があるとします。

// isHogeがfalseで、isFugaがtrueのときに

if (!isHoge && isFuga) {
  処理
}

上記の例ではif文内の処理をして欲しいです。
しかし、なぜかうまく行きません。
isHogeとisFugaが本当にfalseとtrueかも確認しました。

()で囲って明示的にして見たらうまくいった。

腑に落ちない感じがしながらも、以下のコードを書いてみたらうまく行きました。

if ((!isHoge) && (isFuga)) {
  処理
}

これでうまく行きました。

当初のコードでは!のかかり方が以下のように解釈されていたのかなーと思ってます。

if (!(isHoge && isFuga)) {
  処理
}

 

こんなこともあるのですね…
出来るだけIE案件は避けれたら避けたほうがいいなと感じました。

-技術
-

執筆者:


comment

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

【Angular6】画像を拡大したり、ドラッグ移動をできるようにする

こんにちは 画像を拡大したり、ドラッグ移動したい時は結構あるんじゃないでしょうか …

Ionicアプリのアイコンやスプラッシュ画像を変更したい!

こんにちは。田中です。 現在Ionicを使ったアプリ開発に携わっているのですが、 …

Google Web Developers便利なコマンドラインAPIの使い方

こんにちは。佐藤です。 今回はGoogle Web Developersで使える …

Angularでビューのパラメーターを詳細まで見たいときのコード

こんにちはコーテッグのこやまです angularでviewのパラメーターがうまく …

Amazon Rekognitionを使うと写真に自動でタグを付けられます。

こんにちは、高石です。 来月20日(5月20日)はエンたまもくもく会#5です。 …