10 New JavaScript features to start using today

10 New JavaScript features to start using today

Upgrade Your JavaScript Knowledge with These 10 New Features


4 min read

JavaScript is a widely used programming language in web development that continues to evolve with new features. By leveraging these features, developers can enhance their coding skills and increase productivity. In this article, we will explore eight new features of JavaScript, along with examples of how to use them.

Nullish Coalescing Operator

The Nullish Coalescing Operator (??) checks for null or undefined values and returns the first non-null or non-undefined value. This operator is more reliable than the logical OR operator (||) that can return falsy values.


const a = null;
const b = undefined;
const c = "Hello World";
const result = a ?? b ?? c; // "Hello World"

Optional Chaining

The Optional Chaining (?.) operator allows accessing nested properties without causing errors if the parent property is null or undefined.

const user = {
  name: "John",
  address: {
    city: "New York",
    zipCode: "12345"
const city = user.address?.city; // "New York"
const zipCode = user.address?.zipCode; // "12345"
const country = user.address?.country; // undefined

Private Class Fields

Private Class Fields (#) enable defining private instance variables in JavaScript classes. These fields are inaccessible from outside the class, adding a layer of data protection and creating more secure and robust code.


class BankAccount {
  #balance = 0;

  deposit(amount) {
    this.#balance += amount;

  withdraw(amount) {
    if (amount <= this.#balance) {
      this.#balance -= amount;
      return true;
    } else {
      return false;

Dynamic Import

Dynamic Import enables loading modules asynchronously during runtime. This feature allows importing modules conditionally or based on user actions, improving the performance and user experience of web applications.


async function loadModule(moduleName) {
  const module = await import(`./modules/${moduleName}.js`);


BigInt is a new data type that allows working with large integers beyond the limits of the Number type. It is denoted by appending "n" to the end of an integer literal.

JavaScript BigInt variables are used to store big integer values that are too big to be represented by a normal JavaScript Number.


let x = BigInt(999999999999999);
let type = typeof x; // bigint


Promise.allSettled() returns an array of all settled promises, whether resolved or rejected. This method helps in handling multiple promises concurrently and gracefully handling errors and exceptions.


const promises = [
Promise.allSettled(promises).then(results => {


String.prototype.matchAll() returns an iterator of all matches of a regular expression in a string. It enables iteration over all matches and extraction of captured groups and indices.


const regex = /[0-9]+/g;
const string = "I have 2 cats and 3 dogs";
const matches = string.matchAll(regex);
for (const match of matches) {

Logical Assignment Operators

Logical Assignment Operators combine logical and assignment operations, using a combination of a logical operator (&&, ||) and an assignment operator (=) to perform complex assignments and updates with fewer lines of code.


let count = 5;
count &&= 2; // count = 2
count ||= 7; // count = 2

Optional Catch Binding

Optional Catch Binding is a new feature in JavaScript that allows you to omit the parameter in the catch block. This feature makes error handling more concise and efficient by reducing the amount of boilerplate code. Here's an example:

Without Optional Catch Binding Example:

try {
  // some code that may throw an error
} catch (error) {

With Optional Catch Binding:

try {
  // some code that may throw an error
} catch {
  console.log('An error occurred');

In the second example, we don't need to specify the error parameter because we're not using it.

Logical Nullish Assignment Operator

The Logical Nullish Assignment Operator is a new shorthand operator in JavaScript that combines the nullish coalescing operator (??) and the assignment operator (=). It assigns the value on the right-hand side to the variable on the left-hand side only if the variable is nullish (i.e., null or undefined). Here's an example:

let myVariable = null;
myVariable ??= 'default value';

console.log(myVariable); // Output: 'default value'

Well, folks there you have it - 10 juicy new features of JavaScript that are sure to knock your socks off! As a web developer, it's important to stay up to date with the latest advancements in the field, and these features are worth getting excited about.

Whether you're a seasoned pro or a newbie just starting, there's something here for everyone. The Nullish Coalescing Operator, Optional Chaining, Private Class Fields, Dynamic Import, BigInt, Promise.allSettled(), and Logical Assignment Operators all offer powerful new capabilities that can enhance your coding skills and productivity.

So why not take a deep dive into each of these features, and see how you can leverage them to build better, more efficient, and more secure web applications? And remember, these are just the tip of the iceberg when it comes to the exciting world of JavaScript - there's always more to learn and explore!

So, let's roll up our sleeves, fire up our text editors, and get coding! And as always, keep supporting us by liking, commenting, and sharing this blog.

Please comment down here do you want to make a blog on deep dive into each of these features to know more in detail.

Did you find this article valuable?

Support Bhushan Patil by becoming a sponsor. Any amount is appreciated!