I've read that Node.js offers concurrency based on the event loop. But doesn't concurrency mean that something is happening simultaneously? The event loop is there because it processes bits of code to execute one after the other and not concurrently.
For instance Alexandru writes this in his tutorial on Node.js (https://www.airpair.com/javascript/node-js-tutorial)
Node is single-threaded and uses a concurrency model based on an event loop. It is non-blocking, so it doesn't make the program wait, but instead it registers a callback and lets the program continue. This means it can handle concurrent operations without multiple threads of execution, so it can scale pretty well.
Is there or is there no concurrency in JavaScript? My thought was that only Web Workers enable concurrency in JavaScript, is it possible by other means on the frontend or backend?