Skip to main content

One post tagged with "big-words"

View All Tags

Β· 5 min read
Nishant Mendiratta

Here's a brief overview of important JavaScript concepts, along with sample code snippets for each:

1. Hoisting​

Hoisting refers to JavaScript's behavior of moving declarations (variables and functions) to the top of their scope before code execution.

console.log(a);  // undefined due to hoisting
var a = 5;

2. Single Threaded​

JavaScript runs in a single thread, meaning it can only execute one task at a time.

3. Synchronous​

Synchronous code is executed line by line, with each operation blocking the next one until it completes.

console.log("First");
console.log("Second");

4. Function Invocation​

This is the process of calling or executing a function.

function greet() {
console.log("Hello");
}
greet(); // Function invocation

5. Variable Environment​

The context in which variables are stored and accessed, typically inside a scope (global, function, or block).

6. Scope​

Scope determines the visibility and lifetime of variables and functions. In JavaScript, there are function scope, block scope, and global scope.

if (true) {
let x = 5; // Block scope
}
console.log(x); // Error: x is not defined

7. Asynchronous​

Asynchronous code allows other operations to continue while waiting for a task to complete.

setTimeout(() => {
console.log("Asynchronous");
}, 1000);

8. How This Happens Inside JS Engine?​

JavaScript's event loop handles asynchronous operations. The call stack executes synchronous code, while the event loop waits for tasks in the callback queue.

9. Dynamic Typing​

In JavaScript, variable types are determined at runtime, allowing flexibility in assigning different types to the same variable.

let data = 42;
data = "Now a string"; // No error

10. Operators​

Operators in JavaScript include arithmetic, comparison, logical, etc.

let sum = 10 + 5;  // Arithmetic
let isEqual = 10 === 10; // Comparison

11. Operator Precedence​

This defines the order in which operations are executed.

let result = 2 + 3 * 4;  // 14, because * has higher precedence than +

12. Associativity​

Associativity determines the direction in which operators are evaluated.

let result = 10 - 5 - 2;  // Left-associative, evaluated as (10 - 5) - 2

13. Coercion​

JavaScript automatically converts types when required.

let result = '5' - 2;  // '5' is coerced into a number, result is 3

14. Namespace​

A way to organize code by grouping related variables and functions.

let MyApp = {
name: "My Application",
version: 1.0
};

15. First-Class Function (FCF)​

Functions in JavaScript can be treated as variables and passed around as arguments or returned from other functions.

function sayHello() {
return "Hello";
}
let greet = sayHello; // First-class function

16. Expression​

An expression is any valid unit of code that resolves to a value.

let sum = 5 + 10;  // The expression `5 + 10` evaluates to 15

17. Executing Function Created on the Fly​

Anonymous functions are created and executed instantly.

(function() {
console.log("Executed on the fly");
})();

18. Mutate​

To modify an object or variable's properties.

let obj = { name: "Alice" };
obj.name = "Bob"; // Mutating the object

19. Arguments​

arguments is an array-like object in functions that contains all the arguments passed.

function sum() {
let total = 0;
for (let i = 0; i < arguments.length; i++) {
total += arguments[i];
}
return total;
}
console.log(sum(1, 2, 3)); // 6

20. Whitespace​

Whitespace (spaces, tabs, newlines) is ignored in JavaScript code for the most part.

21. Closure​

A closure is a function that remembers and accesses variables from its outer scope, even after that scope has closed.

function outer() {
let x = 10;
return function inner() {
console.log(x);
};
}
const closureFunc = outer();
closureFunc(); // Outputs 10

22. Factory​

A function that returns objects.

function createPerson(name, age) {
return { name, age };
}
const person = createPerson("John", 30);

23. Callback Function​

A function passed as an argument to another function and executed later.

function fetchData(callback) {
setTimeout(() => {
callback("Data fetched");
}, 1000);
}

fetchData((message) => console.log(message));

24. Function Currying​

Currying transforms a function that takes multiple arguments into a series of functions, each taking one argument.

function add(a) {
return function(b) {
return a + b;
};
}
let add5 = add(5);
console.log(add5(3)); // 8

25. Inheritance​

Inheritance allows one object to acquire properties and methods of another.

class Animal {
speak() {
console.log("Animal speaks");
}
}

class Dog extends Animal {
bark() {
console.log("Dog barks");
}
}

26. Function Constructors​

A way to create objects in JavaScript using constructor functions.

function Person(name, age) {
this.name = name;
this.age = age;
}
const john = new Person("John", 30);

27. Polyfill​

A polyfill is code that provides functionality for older browsers that don't natively support newer features.

if (!Array.prototype.includes) {
Array.prototype.includes = function(element) {
return this.indexOf(element) !== -1;
};
}

28. Syntactic Sugar​

Syntactic sugar refers to language features that don't add new functionality but make the code easier to read and write.

// Arrow function is syntactic sugar for writing function expressions
const add = (a, b) => a + b;
info

If you are looking for a resource where you can learn Javascript. Summarized version of Understanding the Weird Parts is highly recommended.