技術

[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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

[Ionic]UnhandledPromiseRejectionWarning: CordovaError: Requirements check failed for JDK 1.8 or greater

こんにちわ。田中です。 参画しているプロジェクトで使っているのもあって、現在Io …

no image

【Rails】Railsでsitemap.xmlを作成する

こんにちは Railsでsaitemap.xmlを作成する方法を紹介します。 s …

no image

HTMLエンティティを探すならHTML Arrowsがオススメ!

こんにちは htmlエンティティっていうのを聞いたことがありますか? アンパサン …

no image

CSSのbackgroundで複数の背景色を設定してみる

こんにちは 仕事で複数の背景色を設定する機会がありましたので 今回はそのやり方を …

Chrome開発者ツールの背景を黒にする

普段コーディングしている時は、背景黒の方が目に優しい気がするのでエディターの背景 …