仕様。仕様書見れば書いてあるよ
let o;
if (o = ...) と書いても結果は変わらないと思う
o がブロックの外に漏れるというだけで