AnonymousJan 02, 2024
The most recent version of JavaScript, called JavaScript ES6 (also referred to as ECMAScript 2015 or ECMAScript 6), was released in 2015.
The JavaScript programming language is based on ECMAScript. The specifications for the JavaScript programming language are provided by ECMAScript.
Arrow functions, a more condensed method of writing function expressions, were introduced in ES6. They come in particularly useful for quick, one-line operations.
function add(a, b) {
return a + b;
}
// Arrow function
const add = (a, b) => a + b;
A relatively new feature in JavaScript is the ability to create string literals with embedded expressions thanks to template literals, also referred to as template strings. Instead of the single or double quotes used for regular string literals, they are surrounded by the backtick ({ }) characters. To embed expressions within the string, they use placeholders denoted by a dollar sign and curly braces (${expression}{).
Here is an example of a template literal:
const name = 'Jackson';
console.log(`Hello, ${name}!`);
The let
keyword was introduced in ES6 (2015) Variables declared with let
have Block Scope and must be Declared before use and cannot be Redeclared in the same scope
The const
keyword was introduced in ES6 (2015) Variables defined with const
cannot be Redeclared and Reassigned.
let a = 10;
function f() {
if (true) {
let b = 9
// It prints 9
console.log(b);
}
// It gives error as it
// defined in if block
console.log(b);
}
f()
// It prints 10
console.log(a)
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
Using the class keyword to create prototypes and constructor functions became more organised with ES6.
class Dog {
constructor(name) {
this.name = name;
}
bark() {
console.log('Woof!');
}
}
const myDog = new Dog('Buddy');
Retrieve values from objects or arrays that have been assigned to be destroyed. It's a succinct method of explaining values.
// Array destructuring
const [first, second] = [1, 2];
// Object destructuring
const { firstName, lastName } = { firstName: 'Jackson', lastName: 'Verma' };
While the rest operator gathers elements into an array, the spread operator (...) can expand elements. These are very helpful in many situations.
// Spread operator
const arr = [1, 2, 3];
const newArr = [...arr, 4, 5];
// Rest operator
const sum = (...numbers) => numbers.reduce((acc, num) => acc + num, 0);
Decrease the need for manual checks by setting default values for function parameters.
const greet = (name = 'Jackson') => `Hello, ${name}!`;
If the variable names correspond to the object key names, you can use the shorthand syntax for property assignment when creating objects.
const firstName = 'Jackson';
const lastName = 'Verma';
// Object shorthand
const person = { firstName, lastName };
You can separate your code into distinct files and organise it with ES6 modules. Functions for import and export are available as needed.
// Exporting
export const add = (a, b) => a + b;
// Importing
import { add } from './math';
Use Promises to make asynchronous code simpler. They offer a more hygienic method of handling tasks that could require some time to finish.
const fetchData = () => {
return new Promise((resolve, reject) => {
// Async operation
if (/* operation is successful */) {
resolve(data);
} else {
reject('Error fetching data');
}
});
};
You can write more efficient and maintainable JavaScript code if you learn how to use these ES6 features. Take advantage of the new syntax and accelerate your development process!