技術

[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

wordpressで固定ページが表示されない時は.htaccessを確認しよう

こんばんは 個人でwordpressサイトを持っているのですが いきなり固定ペー …

Slack Tasker系アプリで絵文字ステータスを自動設定(android 「Automate」)

Slackの絵文字ステータス、皆さん使っているでしょうか? 私は自分の居る場所に …

no image

javascriptで画面サイズ毎に処理をしたい時

こんにちは 今回はjavascriptで画面サイズ毎に処理をしたい時にオススメの …

[Angular] has no exported member ‘XXXLoginComponent’.

どうも中田です Angularでコンポーネント名を階層構造にあった名前にしようと …

[Ionic] error: archive not found at path ‘platforms/ios/〇〇.xcarchive’ ** EXPORT FAILED **

こんにちは。たなかです。   Ionicを利用したアプリ開発もラストス …