This is great because you now don't have to master two languages (one for frontend and one for backend) to become a full stack engineer anymore.
While node is not the best on performance on the server side, it can be tuned to be pretty good and will work for most scenarios.
The wide range of open source packages available in npm makes it a really attractive choice for web development.
There are a few crucial language features that you have to learn to write good code both on the frontend and backend.
Pay special attention to the features listed below.
In website development, DOM stands for Document Object Model. It is a programming interface that allows us to create, change, or remove elements from a website document.
A Quick Intro
A bit more detailed demo
MDN has a good post on promises
Async / Await
Async / Await pattern is the natural extension of Promises and is nothing but syntactic sugar to make promises look condensed. Any promise by default can be treated as an async function call and thus, any promise returning function can be awaited.
Promises in their native form have more control over parallel executions and should be preferred if concurrency is being considered to improve performance. It's harder to write concurrent tasks in the async/await syntax.
Quick Video Here
MDN has a good post Async/Await
RxJS is an event processing pipeline. It's a an important tool to know before getting into Angular / React. Events can be subscribed at multiple places in an application and so, this becomes a very handy tool to use in multi-component architectures like angular. Using RxJS, you may end up writing significantly less boilerplate code to pass data around.
Watch this video for a Quick Intro here
To master it, head over to the official page.