if (hoge == true)
この形の場合、hogeの単語が実際にどういう名前かで決める。

hogeがisXXXとかhasXXXとか名前からして明らかに
trueかfalseかが入ると分かっている場合には
if(isXXX) のように書く。
それは英語的に比較的自然な文章だから。

ただし、hogeがflagやvalueやhogeのように
true/falseが入っているのか分かりにくい場合は
if(flag == true) のように書く。


if(flag)なんて書くとnullが入っていないという意味なのか
正の整数の意味なのか、(言語によっては)文字列がある場合なのか
意図が分かりにくい。

if(hoge)の形式はhogeがオブジェクトである場合のみに限定して使用する。