ES6 JAVASCRIPT

Pranav Bakare - Sep 8 - - Dev Community

ES6 (ECMAScript 2015) introduced several new features and syntax improvements to JavaScript. Here’s a summary of the most important ES6 syntax with examples:

1. let and const Keywords

ES6 introduced let and const for block-scoped variables.

  • let: Block-scoped variable that can be updated but not re-declared in the same scope.
  • const: Block-scoped constant, cannot be updated or re-declared.
// let example
let age = 25;
age = 30; // allowed

// const example
const name = 'John';
name = 'Doe'; // error: Assignment to constant variable
Enter fullscreen mode Exit fullscreen mode

2. Arrow Functions (=>)

Arrow functions provide a shorter syntax for writing functions and do not bind their own this.

// Regular function
function add(a, b) {
  return a + b;
}

// Arrow function
const add = (a, b) => a + b; // implicit return
Enter fullscreen mode Exit fullscreen mode

3. Template Literals

Template literals allow for embedding expressions and multi-line strings, using backticks (`).

const name = 'Alice';
const greeting = `Hello, ${name}!`; // string interpolation

console.log(greeting); // Hello, Alice!
Enter fullscreen mode Exit fullscreen mode

4. Destructuring Assignment

Destructuring allows you to unpack values from arrays or properties from objects into distinct variables.

  • Array Destructuring:
const numbers = [1, 2, 3];
const [first, second] = numbers;

console.log(first); // 1
console.log(second); // 2
Enter fullscreen mode Exit fullscreen mode
  • Object Destructuring:
const person = { name: 'John', age: 25 };
const { name, age } = person;

console.log(name); // John
console.log(age); // 25
Enter fullscreen mode Exit fullscreen mode

5. Default Parameters

Functions can have default parameter values.

const greet = (name = 'Guest') => `Hello, ${name}!`;

console.log(greet()); // Hello, Guest!
console.log(greet('Alice')); // Hello, Alice!
Enter fullscreen mode Exit fullscreen mode

6. Rest Parameters (...)

The rest operator (...) allows functions to accept an indefinite number of arguments as an array.

const sum = (...numbers) => numbers.reduce((acc, num) => acc + num, 0);

console.log(sum(1, 2, 3, 4)); // 10
Enter fullscreen mode Exit fullscreen mode

7. Spread Operator (...)

The spread operator (...) allows an iterable (e.g., array, string) to be expanded into individual elements.

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const combined = [...arr1, ...arr2];

console.log(combined); // [1, 2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

8. Classes

ES6 introduced the class syntax to define constructors and methods.

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log(`Hello, my name is ${this.name}.`);
  }
}

const john = new Person('John', 25);
john.greet(); // Hello, my name is John.
Enter fullscreen mode Exit fullscreen mode

9. Modules (Export & Import)

ES6 provides native support for modules with export and import.

  • Exporting:
// file: math.js
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;
Enter fullscreen mode Exit fullscreen mode
  • Importing:
// file: app.js
import { add, subtract } from './math';

console.log(add(2, 3)); // 5
Enter fullscreen mode Exit fullscreen mode

10. Promises

Promises represent the eventual completion (or failure) of an asynchronous operation.

const fetchData = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Data received');
    }, 2000);
  });
};

fetchData().then(data => console.log(data)); // Data received (after 2 seconds)
Enter fullscreen mode Exit fullscreen mode

11. For-of Loop

The for-of loop allows you to iterate over iterable objects like arrays, strings, etc.

const fruits = ['apple', 'banana', 'cherry'];

for (const fruit of fruits) {
  console.log(fruit);
}
// apple
// banana
// cherry
Enter fullscreen mode Exit fullscreen mode

12. Map and Set

ES6 introduced new collection types: Map (for key-value pairs) and Set (for unique values).

  • Map:
const map = new Map();
map.set('name', 'John');
map.set('age', 25);

console.log(map.get('name')); // John
Enter fullscreen mode Exit fullscreen mode
  • Set:
const set = new Set([1, 2, 3, 3]); // duplicates are ignored
set.add(4);

console.log(set.has(3)); // true
console.log(set.size); // 4
Enter fullscreen mode Exit fullscreen mode

These ES6 features significantly improve the readability, maintainability, and functionality of JavaScript code.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .