必要あって念のため調べてみました。初歩すぎて載せるのを迷いましたが自分のために一応載せようかと。
同名のユーザー定義関数があれば後述優先。
変数はもちろんその都度更新。
JSに限らずほかの言語でも全く同様です。
体感的に知ってたけれど、実際に見ると恐ろしいですね。大規模プロジェクトやってて変数が被ったら機能が全停止という。コーディング規約の重要性を感じますね。
機能更新目的で意図的にユーザー定義関数かぶらせるのはありかと。例えばJS上でCSSとHTMLを書いて同時更新、みたいな。人にはあまりお勧めしないけれど。