for(let p in obj); って書かれても違和感しかない
for in と for ofの規格を策定するとき誰も疑問に思わなかったのか?
慣れるしかない、と頭では理解出来ても納得は出来ない

そもそもプロパティーはオブジェクトに所有されてるものだから、所有を表す前置詞ofとかwhoseの方が適切なんじゃないかと思わなくもない
for propertyOf obj とか obj.EachProperty() みたいな書き方は出来ないものか・・・