Changes to JS not reflected on site

You have to look through your theme to see where the js file is enqueued. Usually there is a functions.php file in the theme which will have all the special functions and actions. Sometimes the developer will put all the enqueued scripts into the theme template (i.e. single.php) before get_header() is called.

In any event, your menu.js file is enqueued using the wp_enqueue_script()
function either in the template file or functions.php. The 4th argument in this function can be set to a ‘1.0’ type string to bust the cache when you make changes to the base js. If the call to wp_enqueue_script() does not specify a version in the 4th argument, WP will use the current version of WordPress running as the ver variable in the URL.

As a good practice, I would recommend using a child theme or a separate js file that hooks into the wp_enqueue_scripts hook because if you are subscribed to getting updates from the theme developer, your changes to functions.php will likely be overwritten. This might be a lot as you stated you are a WP novice but if you’re going to stay with the platform, I think finding out about child themes, actions and hooks is worthwhile.