It's interpreted and then compiled on the fly using JIT, so somewhere in the middle.
Unlike Java which compiles to byte code and then the byte code is compiled on the fly to something the machine can understand, NodeJS stays JavaScript and then the JavaScript is compiled on the fly.