1. A JavaScript runtime is a single-threaded environment. The event loop executes instructions serially. Nothing can block that single thread, so every function runs to completion once it begins.
2. JavaScript is asynchronous. Events can occur asynchronously, which means non-sequentially.
3. Non-sequential processing (processing instructions out of sequence) is not equivalent to "parallel" processing, in which processes can run simultaneously. One would need multiple event loops running in parallel for that. Non-sequential processing could be called concurrent processing, rather than parallel processing, if we say that concurrent events occur within the same time period but not necessarily at the same instant.