技術

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

関連記事

rails_logo

[Rails] image_tagを使わずにassets内の画像を指定する方法

こんにちは。さとうです。 今回はimage_tagを使わずにassets内の画像 …

[Rails] TinyTds::Error (closed connection)

どうも中田です。 たぶん、この記事で救われるエンジニアの方はおそらく1人いればよ …

no image

【rails】websocket-rails動きません!

どうも中田です。 巷ではrailsでwebsocketを動かすのは簡単♪簡単♪っ …

no image

gormでバルクインサート

こんにちは gormでレコードを作成する時は user := User{Name …

[Rails] バージョン上げるときに気をつけること

どうも中田です。 セキュリティ診断とかで引っかかってrailsのバージョンあげた …