JavaScript: Step 13- ES6+ Features (Arrow functions, Template literals, Destructuring, Spread operator)

image 2

Play Store Application link – Java to JavaScript in 13 Steps – App on Google Play

ES6 (ECMAScript 2015) introduced several powerful features to JavaScript, making code more concise and expressive. Key features include arrow functions, template literals, destructuring, and the spread operator.

Comparison to Java:

  • Arrow Functions: In Java, you can achieve similar functionality using lambda expressions introduced in Java 8. They allow you to write concise code for functional programming.
  • Template Literals: Java does not have a direct equivalent to template literals, but string formatting can be achieved using String.format() and MessageFormat.
  • Destructuring: In Java, you typically extract data from objects or arrays through getter methods or by iterating over collections, rather than through a syntactic feature like destructuring.
  • Spread Operator: Java does not have a direct equivalent to the spread operator, but similar functionality can be achieved using methods like System.arraycopy() or libraries for combining collections.

Tabular Comparisons:

FeatureDescriptionJava Comparison
Arrow FunctionsA shorthand way of writing functionsJava 8 lambdas provide similar functionality
Template LiteralsA way of embedding variables and expressions in stringsJava uses String.format() for similar results
DestructuringA way of extracting data from arrays and objectsJava uses getter methods and manual extraction
Spread OperatorA way of spreading the elements of an array or objectJava uses methods like System.arraycopy()

Text Diagram:

ES6+ Features
  |
  |-- Arrow Functions      Template Literals       Destructuring      Spread Operator
  |         |                    |                    |                     |
  |  Shorthand syntax      Embed variables        Extract data        Spread elements
  |  for functions        and expressions        from arrays         of arrays/objects
  |          |                    |                    |                     |
  |    () => {}             `Hello ${name}`    const { name, age }  [...arr1, ...arr2]
                                           = obj

Basic Programs:

Arrow Functions:

// Traditional function
function add(x, y) {
  return x + y;
}

// Arrow function
const add = (x, y) => x + y;

console.log(add(2, 3)); // 5

Template Literals:

const name = 'John Doe';
console.log(`Hello ${name}!`); // "Hello John Doe!"

Destructuring:

const person = {
  name: 'John Doe',
  age: 30,
  address: {
    street: '123 Main St',
    city: 'Anytown',
    state: 'CA',
    zip: '12345'
  }
};

// Extracting data from an object
const { name, age, address: { city } } = person;
console.log(name); // "John Doe"
console.log(age); // 30
console.log(city); // "Anytown"

const numbers = [1, 2, 3, 4, 5];

// Extracting data from an array
const [first, second, ...rest] = numbers;
console.log(first); // 1
console.log(second); // 2
console.log(rest); // [3, 4, 5]

Spread Operator:

const arr1 = [1, 2, 3];
const arr2 = [4, 5];
const arr3 = [...arr1, ...arr2, 6, 7];
console.log(arr3); // [1, 2, 3, 4, 5, 6, 7]

const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const obj3 = { ...obj1, ...obj2, e: 5 };
console.log(obj3); // {a: 1, b: 2, c: 3, d: 4, e: 5}

Running the Examples:

Save the JavaScript code in a .js file and execute it using Node.js. Here’s how you can set it up:

script.js:

const add = (x, y) => x + y;
console.log(add(2, 3)); // 5

const name = 'John Doe';
console.log(`Hello ${name}!`); // "Hello John Doe!"

const numbers = [1, 2, 3, 4, 5];
const [first, second, ...rest] = numbers;
console.log(first); // 1
console.log(second); // 2
console.log(rest); // [3, 4, 5]

const arr1 = [1, 2, 3];
const arr2 = [4, 5];
const arr3 = [...arr1, ...arr2, 6, 7];
console.log(arr3); // [1, 2, 3, 4, 5, 6, 7]

Open the terminal in Visual Studio Code and navigate to the folder where the script.js file is located. Run the file using the following command:

node script.js

This will execute the file and display the results in the terminal.


Leave a Reply

Your email address will not be published. Required fields are marked *