¿Es mejor crear un archivo externo para mi código JS, o simplemente ponerlo en el código html?
Es mejor crear un archivo externo para su código JS. También es mejor tener uno o dos archivos que sirva al cliente. Sin embargo, es también mejor tener su división de código JS a través de archivos múltiples para los problemas de mantenimiento. Para poder hacer esto, puede usar preprocesadores como Gulp que combinarán sus diferentes archivos JS en un solo archivo.
Servir menos archivos es mejor ya que el cliente tendrá menos solicitudes HTTP para manejar.
¿Ponerlo en la página es más rápido de cargar?
Sí, obviamente es más rápido ya que solo hace una solicitud para el HTML, mientras que haría muchas solicitudes (al menos 2) con su código JS como externo. Esto es solo si su código JS no está minimizado en ninguno de los lados, y esto no tiene en cuenta lo difícil que será mantener su código si todo está en una sola página HTML.
¿Puedo cambiar los permisos para denegar las solicitudes de los usuarios para el código, pero la página html aún puede llamar al código?
No, no puedes. El código JS, como el código CSS y el código HTML, es contenido estático. Eso significa que una vez que está en el navegador, el cliente puede descargarlo y su contenido por completo. Todos los archivos, imágenes y guiones están abiertos para ser descargados.
Pero , puede minificar / uglificar su código para que sea más difícil para un ser humano usarlo. Eso es solo una consecuencia de la uglificación, que se hizo primero para el rendimiento.