JavaScript で、セミコロンの有無について教えてください。
(付けては駄目なケースを知りたい)

//function文
function hoge(){
}

//function式
var hoge = function(){
};

例えば、function文最後にセミコロンを付けては駄目でしょうか?

function hoge(){
};

・function文にセミコロンを付けるのは文法上駄目?
・それとも、省略可能なだけで、付けても良い?

・「文」と「式」の違いに、「セミコロン有無」は関係あるでしょうか?
・「式」以外は、セミコロンを付けては駄目など…