JavaScript has introduced several powerful operators in recent versions, with the rest and spread operators being among the most significant additions in ES6 (ES2015). These operators use the same three-dot syntax (...) but serve different purposes depending on context. Rest Operator The rest operator allows you to represent an indefinite number of arguments as an array. It's indicated by three dots (...) and precedes a parameter in function definitions. Example Here's how to use the rest operator to handle multiple function arguments: ... Read More
Rest parameters and spread operators use the same three-dot syntax (...) but serve different purposes. Rest parameters collect multiple arguments into an array, while spread operators expand arrays or objects into individual elements. Rest Parameters Rest parameters allow functions to accept an indefinite number of arguments as an array. They must be the last parameter in a function's parameter list. Syntax function functionName(...parameterName) { // parameterName is an array containing all arguments } Example ... Read More
We use the Spread Syntax of JavaScript to expand an array, string, or object in place. Such types of values are called iterable. This is similar to destructuring the iterable in place. Its utility in a function call allows us to extract function parameters from an iterable. In this tutorial, we learn how to use Spread Syntax with arguments in JavaScript functions. Spread operator in JavaScript A Spread operator, denoted with (...) followed by the name of the iterable expands the iterable into its constituent elements. Example of spread in destructuring: const [x, y, ...z] ... Read More
Generator functions in JavaScript allow you to pause and resume function execution, providing powerful control over program flow. Unlike regular functions that run to completion, generators can yield values multiple times and maintain their internal state between calls. Syntax Generator functions are defined using the function* syntax with an asterisk. The asterisk can be placed in different positions: function* myGenerator() {} // or function *myGenerator() {} // or function*myGenerator() {} How Generator Functions Work Generator functions use the yield keyword to pause execution and return a value. When called, they return a generator ... Read More
To define functions inside a function body in JavaScript, you can use nested function declarations or function expressions. This creates closures that have access to the outer function's scope. Basic Nested Function Functions declared inside another function are only accessible within that parent function: function outerFunction() { function innerFunction() { console.log("Hello from inner function!"); } innerFunction(); // Call the nested function } outerFunction(); Hello from inner function! ... Read More
In this tutorial, we will learn how to pass the value 'undefined' to a function with multiple parameters in JavaScript. In JavaScript, the data type of 'undefined' is primitive. When a variable is declared, JavaScript automatically assigns the value 'undefined' to it. If a function has multiple parameters and one of the parameters' values is not available at the moment, then we need to omit that parameter's value from the function call. But if we omit the parameter's value with a blank space, the JavaScript will show an error. The Problem function abc(param1, param2, param3) { ... Read More
We use the join() method of JavaScript to use a line break in array values. It allows us to concatenate all the constituent elements of an array into a single string using a common separator. The join() method in JavaScript The join() method takes as input a single separator string and returns a string with all the elements of the array separated by the specified separator string. The separator string by default is the comma(, ). The join method uses the toString() method to convert the elements of the array into corresponding strings. A null or undefined ... Read More
In JavaScript, "lexical this" refers to how arrow functions inherit the this context from their enclosing scope, unlike regular functions that define their own this. This solves common issues with this binding in callbacks and nested functions. The Problem with Regular Functions Regular functions create their own this context, which can lead to unexpected behavior in callbacks: Click Me document.getElementById('myButton').addEventListener('click', function() { console.log('Outer this:', this); // Points to the button setTimeout(function() { console.log('Inner ... Read More
Fat arrow functions (also called arrow functions) were introduced in ES6 to provide a shorter syntax for writing functions. They use the => syntax, which resembles a "fat arrow", eliminating the need to write the function keyword repeatedly. Syntax For a single argument: argument => expression For multiple arguments or no arguments: (argument1, argument2) => expression // or () => expression Example: Traditional vs Arrow Function Traditional Function: var rank = [7, 8, 9]; var display = rank.map(function(num) { return num * num; ... Read More
The increment (++) and decrement (--) operators in JavaScript can lead to confusing code and unexpected results due to their pre-increment and post-increment behavior. Understanding why they should be avoided helps write clearer, more maintainable code. Pre-increment vs Post-increment Confusion The main issue with increment operators is the difference between pre-increment (++a) and post-increment (a++), which can produce unexpected values in assignments: var a = 5; var b = ++a; // Pre-increment: a becomes ... Read More
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Economics & Finance